Tag: hresult

写入Excel单元格时,从HRESULT:0x800A03EC发生Excelexception

我知道这里已经讨论过了,但是我找不到解决scheme。 我在C#中使用Microsoft.Office.Interop.Excel时遇到此错误(HRESULT的exception:0x800A03EC)。 这是我的代码: for (int i = 1; i <= max; i++) { int column = 1 … double averageDistance = sum / distanceCount; //sum and distanceCount are type double myWorksheet1.Cells[i, column] = averageDistance; // Here I am getting the exception. column++; … } 我知道有些人使用Cells中的非零索引来解决这个问题,但是你可以看到我的索引从1开始。任何人都可以帮忙吗? 谢谢。

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 2016文件失败,HRESULT:0x800706BE

用于打开现有Excel文件的简单VB.NET代码在打开命令时失败,出现以下错误: 远程过程调用失败。 (从HRESULTexception:0x800706BE) 我已经search堆栈溢出和微软网站的这个错误,它看起来像没有人有一个确定的答案。 但是有一点是一致的,似乎都是在64位Excel中发生的。 无论如何,我在这里要求这个问题的帮助。 下面是我非常简单的代码: Imports Microsoft.Office.Interop.Excel Dim XLApp As Application = New Application() Dim XLWkb as Workbook = XLApp.Workbooks.Open("TestExcel.xlsx") Dim XLSht as WorkSheet = XLWkb.Sheet(1) XLWkb.Close() XLApp.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(XLSht) System.Runtime.InteropServices.Marshal.ReleaseComObject(XLWkb) System.Runtime.InteropServices.Marshal.ReleaseComObject(XLApp) 上面的代码在XLApp.Workbooks.Open行中一直出现这个可怕的消息。 My windows is Windows 7 Enterprise Service Pack 1, 64-bit My Excel is 2016 MSO (16.0.6701.1041) 64-bit version. My MS Office […]

Excel IF语句导致错误:来自HRESULT的exception:0x800A03EC

我正在C#中创build一个Excel报告。 当我添加下面的公式时,一切工作正常: totalCellFormulaRange.Formula = "=SUM(AH7:AS7)"; //totalCellFormulaRange is a Range object from Microsoft.Office.Interop.Excel 但是现在当我尝试添加一个由下面的if语句组成的公式时, memberGuidesCellFormaulaRange.Formula = "=IF(LEFT(D7;12)=\"Welcome Pack\";O7*$AQ$4;0)"; 那么我得到这个错误: 来自HRESULT的exception:0x800A03EC 如果在Excel工作表中input上面的if语句,则工作是100%。 它只在C#中失败,并且当它碰到这行代码时抛出exception。

Excel Interop Range.Value = arr 当arr 包含date小于1900-01-01时与0x800A03EC崩溃

我理解的基本问题是,Excel表示1900-01-01为1的值。但是,在Excel中可以手动input1900以前的值。 // this converts the DataTable to an Object[,] DataTable table = … Object[,] arr = DataTableUtils.toObjectArray(table, false); Range r00 = r0.get_Resize(arr.GetLength(0), arr.GetLength(1)); r00.Value = arr; // <– this will crash if … 如果arr [,]在1899-12-31之前包含DateTime对象,则会导致0x800A03ECexception。 奇怪的是,1899-12-31很好,Excel增加了一天的价值。 最初我用1900-01-01replace了1900年前的date,但在输出文件中,它们是1900-01-02! 目前,我正在使用解决方法来replace错误的DateTime值。 但是,如果有人有更好的解决scheme,请让我知道。

Excel中的HRESULT代码在C#中互操作

我正在寻找一种干净的方式来在Excel中使用interop来输出C#中的错误。 当文件不是“正确的”时,有一个像“ blabla HRESULT:0x800AC472 ”的消息。 我宁愿要像“ 文件使用有这个或那个问题 ”的消息。 为了做到这一点,我需要知道每个HRESULT映射到哪个错误? 如何获得这样的错误列表? 我看MSDN,发现一些说明,但我似乎无法find像上面提到的“ 0x800AC472 ”所有代码的列表。

Excel文件上的C#multithreading访问

我正在编写一个multithreading的C#应用​​程序,它提供了一些Excel文件的统计信息。 我通过以下代码打开文件: private static Excel.Application excelApp = new Excel.Application(); private static Excel.Workbook workbook = excelApp.Workbooks.Open(path); private static Excel.Worksheet worksheet = workbook.ActiveSheet; private static Excel.Range range = worksheet.UsedRange; private static int totalColumns = worksheet.UsedRange.Columns.Count; 为了从列中收集数据,我使用了每列一个线程。 for (int columnCount = 1; columnCount <= /*range.Columns.Count*/totalColumns; columnCount++) { Thread worker = new Thread(printSpread); worker.Start(columnCount); } 我得到HRESULT:0x800A01A8如果我不在每个线程中启动一个新的Excel应用程序错误。 我的问题是,我必须这样做还是有机会只使用一个Excel应用程序? 我认为,从多个线程访问仅来自一个应用程序的数据存在问题,这将解释COMexception。 感谢您的时间和帮助。