Openxml - 以标准格式保存非标准 xlsx

Openxml - Save non standard xlsx in standard format

我有一个工具可以通过数据读取 Xls 和 Xlsx 文件 reader。我能够通过 headers 列在 Sql 服务器中创建一个 table,然后使用数据 reader 将数据泵入 table。

我的一位客户发送了可以用 Excel 打开但不适用于我的工具的 xlsx 文件。我猜 xlsx 是由第三方应用程序生成的,而不是 Excel.

如果我在 Excel 中打开文件并保存它,该文件可以使用该工具。我什至可以使用 Excel.Application 在 C# 中执行此操作。但是我不想在我的服务器上安装 Office,所以这不是一个选项。

我的想法是使用 Openxml 打开和保存文件。虽然这似乎有效,但它并不像 Excel 那样 'fix' 格式。

有人使用过 Openxml 吗?也许你有想法让我试试?

        using (SpreadsheetDocument ssd = SpreadsheetDocument.Open(FileName, true))
        {
            WorkbookPart wbPart = ssd.WorkbookPart;
            WorksheetPart wsPart = wbPart.WorksheetParts.First();

            wsPart.Worksheet.Save();
            wbPart.Workbook.Save();
        }

使用 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);
            }
        }

    }