Tag: office interop

Excel Interop工作表HRESULT:0x800A03EC使用VB.net

所以在我的vb.net应用程序中,我从数据库中提取数据(表中大约有1046行),以便在Excel电子表格中预加载内容。 这工作正常,直到999行,但如果超过999行,它给了我特定的错误。 只是想知道是否有限制。 有任何想法吗? 我使用的是Windows 10,pipe理工作室2012和Excel 2007。 码: Private Sub readEmployee(ByVal employee As data.employeeList) Dim excelWorkSheet As Excel.Worksheet Dim startRow As Integer = 9 Dim firstNames As String = "" Dim lastNames As String = "" With excelWorkSheet startRow = 9 Dim row As data.employeeList.employeeListRow For Each row In employee.employeeList If row.RowState <> DataRowState.Deleted Then […]

如何从Excel互操作事件线程更新GUI控件?

我有一个C#GUI应用程序,通过官方的互操作COM库自动化一些Excel任务。 我正在为SheetActivate事件提供我自己的事件处理程序。 // fetch the excel handle var excel = viewer.GetApplication() as Microsoft.Office.Interop.Excel.Application; // set sheet activate event handler excel.SheetActivate += excel_SheetActivate; 我相信互操作库从它创build的线程调用这个事件处理程序。 我的问题是,我需要更新基于这个事件的一些GUI组件,但是我不能在这些线程上的GUI上执行更新操作。 我的问题是,从这个优秀的互操作事件处理程序,我相信是在自己的线程,我怎样才能安全地更新我的graphics用户界面以线程安全的方式? 我问这是因为我目前正在接收更新GUI时有关跨线程操作的运行时错误。 编辑:我相信链接和build议可能的答案是WPF。 我的应用程序不是WPF,它是较早的WinForms。 我没有看到一个Application.Current属性。

删除单元格中的值前面的空白字符C#

我目前正忙于使用C#处理Excel数据的应用程序。 但是我遇到了一个问题。 列中的数据都在其前面有一个空格,这与Sum()函数混淆了。 我有这种方法来读取列中的每一行,并删除数据前面的空白。 private void BlankCheck() { string Val,NT; int RCount = xlWorksheet.UsedRange.Rows.Count; for(int X = 3; X < RCount; X++) { Val = (string)(xlWorksheet.Cells[X, 8] as Excel.Range).Text; NT = Val.Trim(); xlWorksheet.Cells[X, 8] = "\b"+NT.ToString(); } xlApp.Quit(); ReleaseObject(xlWorksheet); ReleaseObject(xlWorkbook); ReleaseObject(xlApp); } 由此产生的结果是正确的,如下面的截图所示 现在就是问题所在,打开新的excel文档时,空格仍然在数据的前面。 所以我在写入单元格时向string添加了“\ b”,但这是结果。 我不确定为什么这些[]出现了? 有什么build议么 ? 这就是excel列在代码运行之前和之后都没有/ b的情况。 不知道你能否看到,但是在时代前面有一个空白的人物。 那些已经问过的人也是这个代码。 private void […]

Excel阅读器无理由返回空值c#

我用我的代码来读取Excel文件中的值有一个小问题。 我使用一个循环来读取每行的单元格和每个单元格的单元格。 excel文件中的第152行正确读取,但在第153行之后,每个单元格只能得到空值。 这是我的代码: public DataTable parseExcelFile(string path,bool firstLineHeader) { DataTable values = new DataTable("Impayés"); Excel.Application appExcel = new Excel.Application(); Excel.Workbook wb = appExcel.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Excel.Worksheet sheet = (Excel.Worksheet)wb.Sheets["Feuil1"]; Excel.Range excelRange = sheet.UsedRange; bool premiere = firstLineHeader; foreach (Excel.Range row in excelRange.Rows) { if […]

将一个单元格的样式/格式复制到另一个单元格Excel Interop C#

我想将Cell格式/样式复制到另一个单元格就像Excel应用程序中的“Format Painter”选项一样 这是我已经尝试,但没有工作 Microsoft.Office.Interop.Excel.Style HeaderStyle = null; SxlSheetRange = (Microsoft.Office.Interop.Excel.Range)xlTamplateWorkSheet.UsedRange[rowCnt, colCnt]; DxlSheetRange = (Microsoft.Office.Interop.Excel.Range)xlTamplateWorkSheet.UsedRange[DrowCnt, DcolCnt]; HeaderStyle = SxlSheetRange.Style; DxlSheetRange.Style = HeaderStyle; 我不想复制只是想像样式单元格就像在Excel中的“格式画家”选项。

我可以在Office365中使用我的VSTO和VBA excel插件吗?

到目前为止,我所见到的所有问题都是陈旧的,并没有提供确切的答案。 另外我可以在本地使用什么,我可以在网上使用什么?

IIS不打开XLS

我正在尝试打开并更新IIS服务器上的xls文件并将其作为下载发送给用户。 以下代码正在开发IIS Express环境下正常工作。 但是当我将它部署在IIS服务器上时,服务器似乎挂在Workbooks.open函数上。 // Copy template to the given file System.IO.File.Copy(Server.MapPath("~") + "\\App_Data\\template.xls", file, true); // Get current project id int activeProjectID = Convert.ToInt32(Session["activeProjectID"]); // Open workbook oXL = new Microsoft.Office.Interop.Excel.Application(); oXL.Visible = true; oXL.DisplayAlerts = false; mWorkBook = oXL.Workbooks.Open(file, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); […]

等待函数结束VB

我开始一个ne项目,在VB中。 我有一个问题。 所以也许我不明白逻辑 – 你能解释一下吗? 在我的函数Feuil1_BeforeDoubleClick我想等待Button1_Click结束。 但我不知道如何做到这一点。 以下是相关的代码: 我的Sheet1 : Imports System.Threading.Tasks Imports Microsoft.Office.Interop.Excel Public Class Feuil1 Friend actionsPane1 As New ActionsPaneControl1 Public list As String Public Sub Feuil1_BeforeDoubleClick(Target As Range, ByRef Cancel As Boolean) Handles Me.BeforeDoubleClick If Target.Column <> 1 Then If Target.Row = 16 Then Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1) Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True 'marche pas SendKeys.Send("{ESC}") ' […]

以像素为单位获取Excel列的宽度,而不是默认的度量单位

从我进行的一些实验看来,从阅读本页开始 ,Excel中列宽度和行高度的默认度量单位不是像素,甚至不是像厘米这样的标准度量,但它们是适合空间。 我正在使用Aspose Cells for Java。 如何获得像素的列的宽度?

Excel互操作 – 停止调整行和列的图表

调整列和行大小时,用于停止调整图表大小的正确属性是什么? 这是我正在寻找https://www.extendoffice.com/documents/excel/1823-excel-prevent-chart-resizing.html