繁体   English   中英

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

[英]reading huge data from excel using Microsoft.Office.Interop.Excel in C#

我正在读取具有大量数据的.xlsx 文件(在 C# 中)(使用 Microsoft.Office.Interop.Excel,几列的最大长度为 415000,该文件有 12 列,每列具有不同的长度。我想找到特定列的长度比如说 3,4,5

我试图做类似下面的事情(因为我没有看到任何直接的 function 来计算列的实际长度)但是给出了没有足够的存储空间来完成这个操作。 (来自 HRESULT 的异常:0x8007000E (E_OUTOFMEMORY))在第 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];

然后循环遍历列以通过循环直到其行有数据来查找每列的长度

有人可以帮忙吗? 有没有直接的方法来查找列的长度...

考虑使用 Microsoft 的Open XML SDK ,它允许您将 XLSX 文件加载为 XML 文档。 与使用 Excel 和进行互操作相比,使用 Linq-to-XML 可能是一种更有效的方式来操作大型 Excel 文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM