簡體   English   中英

OpenXML-以標准格式保存非標准XLSX

[英]Openxml - Save non standard xlsx in standard format

我有一個可以通過數據讀取器讀取Xls和Xlsx文件的工具。 我能夠通過列標題在Sql Server中創建一個表,然后使用數據讀取器將數據泵入表中。

我的一位客戶發送了可以通過Excel打開但無法與我的工具一起使用的xlsx文件。 我猜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:

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

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM