我有一个高度自定义的excel文件(即.xlsx)。我正在使用ACE提供程序阅读该文件。
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myfilefullpath.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=NO;IMEX=1";
我在某些字段中使用了混合数据格式(例如,列E有几行带有字符串值,然后有数百行带有双值)。
某些字段具有自定义格式。将此文件读入datatable时,我看到自定义格式输出而不是“真实”单元格值。
即。 date(“yyyy / mm / dd”)自定义格式为“day mm / dd”,数据表显示为“day mm / dd”。我想在数据插入数据表之前阅读“yyyy / mm / dd或至少是本例中日期的整数值”。如果可能的话,我该如何去做?
更新:我正在使用Microsoft.Office.Interop.Excel
答案 0 :(得分:1)
我最近一直在使用两个库来解析和生成Excel文件,我建议他们阅读您的Excel文件:
1)Open XML SDK 2.5 for Office。快速举例:
FileInfo newFile = new FileInfo(filePath);
ExcelPackage pck = new ExcelPackage(newFile);
var dataSheet = pck.Workbook.Worksheets.FirstOrDefault(ws => ws.Name.Equals("Data"));
var someUnformattedValue = dataSheet .Cells[1, 2].Value;
2)ClosedXML。快速举例:
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets[0];
var someUnformattedValue = worksheet.Cell("A1").Value;
workbook.SaveAs("data.xlsx");
两者都允许内存处理(不需要在磁盘上保存文件),但ClosedXML
不支持图表(至少,还没有)。此外,它们提供了直观的object model。
除了ClosedXML
中有关条件格式的一些问题,我还能够解析并生成相当复杂的Excel文件(带有枢轴和/或数万个数据)。