使用C#从Excel文件中清除格式

时间:2016-02-29 19:58:12

标签: c# excel

我有一个高度自定义的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

1 个答案:

答案 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文件(带有枢轴和/或数万个数据)。