我有一个可以通过数据读取器读取Xls和Xlsx文件的工具。我能够通过列标题在Sql server中创建一个表,然后使用数据读取器将数据泵入表中。
我的一位客户发送的xlsx文件可以通过Excel打开但不能使用我的工具。我猜测xlsx是由第三方应用程序而不是Excel生成的。
如果我在Excel中打开文件并保存,该文件将与该工具一起使用。我甚至可以使用Excel.Application在C#中执行此操作。但是,我不想在我的服务器上安装Office,所以这不是一个选项。
我的想法是使用Openxml打开并保存文件。虽然这似乎有效,但它并没有像Excel那样“修复”格式。
有人有Openxml的经验吗?也许你有个想法让我试试?
using (SpreadsheetDocument ssd = SpreadsheetDocument.Open(FileName, true))
{
WorkbookPart wbPart = ssd.WorkbookPart;
WorksheetPart wsPart = wbPart.WorksheetParts.First();
wsPart.Worksheet.Save();
wbPart.Workbook.Save();
}
答案 0 :(得分:0)
使用ClosedXml:
private void ReSaveXlsx(string FileName)
{
using (XLWorkbook WorkBookNew = new XLWorkbook(FileName))
{
WorkBookNew.Worksheets.Delete(1);
using (XLWorkbook Workbook = new XLWorkbook(FileName))
{
foreach (var Worksheet in Workbook.Worksheets)
{
WorkBookNew.AddWorksheet(Worksheet);
}
WorkBookNew.SaveAs(FileName);
}
}
}