在c#中使用Microsoft.Office.Interop.Excel从excel中读取大量数据

本文关键字:excel 读取 数据 Excel Interop Microsoft Office | 更新日期: 2023-09-27 18:02:23

我正在阅读。xlsx文件(在c#中)有巨大的数据(几列的最大长度是415000使用Microsoft.Office.Interop。在Excel中,该文件有12列,每列的长度不同。我想知道特定列的长度比如3 4 5

我试图做下面的事情(因为我没有看到任何直接的函数来计算列的实际长度),但是没有足够的存储空间来完成这个操作。(Exception from HRESULT: 0x8007000E (E_OUTOFMEMORY)) at line 1

int rows = excelWorksheet.UsedRange.Rows.Count;
Excel.Range excelRange = excelWorksheet.UsedRange;
object[,] valueArr = (object[,])excelRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);.......1
int[] columnSize = new int[valueArr.Length / rows+1];

然后循环遍历列以查找每列的长度,方法是直到该行包含data

有人能帮帮我吗?

在c#中使用Microsoft.Office.Interop.Excel从excel中读取大量数据

考虑使用Microsoft的Open XML SDK,它允许您将XLSX文件加载为XML文档。使用Linq-to-XML可能比使用Excel和进行互操作更有效地处理大型Excel文件。

您可以在MSDN上找到有关Open XML的更多信息。