2016-04-28 61 views
0

我有一個工具可以通過數據讀取器讀取Xls和Xlsx文件。我能夠通過列標題在Sql服務器中創建一個表,然後使用數據讀取器將數據抽入表中。Openxml - 以標準格式保存非標準xlsx

我的一位客戶發送的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

我能得到它ClosedXml工作。 –

回答

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

    }