【问题标题】:Openxml - Save non standard xlsx in standard formatOpenxml - 以标准格式保存非标准 xlsx
【发布时间】:2016-04-29 20:33:56
【问题描述】:

我有一个可以通过数据阅读器读取 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();
        }

【问题讨论】:

  • 我能够让它与 ClosedXml 一起使用。

标签: c# openxml


【解决方案1】:

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

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2016-01-10
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多