2016-10-17 235 views
6

在我的C#應用​​程序中,我使用了ClosedXml .Excel來處理excel文件。 我有一個Excel模板,在那裏我添加模板爲應用程序和數據添加到Excel工作表,並保存Excel如下,Excel的當前格式在Closedxml SaveAs方法中發生變化

wb = new XLWorkbook(exportOption.FileName); 
--- 
if (wb.Worksheets.Count > 0) 
{ 
    for (int i = 0; i < wb.Worksheets.Count; i++) 
    { 
     using (var ws = wb.Worksheet(i + 1)) 
     { 
      if (ws.Visibility == XLWorksheetVisibility.Visible) 
      { 
       ws.SetTabActive(); 
       break; 
      } 
     } 
    } 
} 

try 
{ 
    wb.CalculateMode = XLCalculateMode.Auto; 
    wb.SaveAs(exportOption.FileName); 
} 

保存更改我的Excel格式完全與其他板以及更改後。 例如,在一張表格中,我將百分比格式更改爲日期格式。 如何保持excel的格式相同,只需將數據插入其他工作表。

+1

告訴我們你是如何設置電子表格中的值。我也認爲你沒有指定任何單元格格式,明確設置單元格格式有什麼不同? –

+0

我有同樣的問題。我有一個xlsm文件,我只是用ClosedXML打開並保存。某些格式化會被破壞,文件大小也會變小。 –

回答

0

它通常會被Excel用來處理數字作爲日期(就像引擎蓋下的Excel將日期存儲爲數字一樣)。要強制小區是數不日期嘗試:

ws.Cell(row,col).SetValue<double>(Convert.ToDouble(val)); 

這裏是ClosedXML Cell Formatting的官方文檔。 「# ##%」 如果需要保存格式百分比,例如簡單地設置單元格的格式:

ws.Cell(row, col).Style.NumberFormat.NumberFormatId = 10; 

或未經測試的

ws.Cell(row, col).Style.NumberFormat.Format = "0.0%"; 
+0

感謝您的回答。其實我不會知道Excel表格中包含的格式是什麼。所以問題是當我保存excel時,我想保存在我沒有操作的表格中應用的格式。 – Sangeetha

+0

*對不起,我不完全瞭解。*您可以請[編輯]您的問題,包括截圖顯示問題? –

0

您必須選擇保存之前,應用程序中的單元格數字格式。 CLosedXml是一個基於OPENXML庫的庫,因此您必須應用OpenXml Excel樣式表來更改單元格數字格式。

這是一個Article,可以幫助你

相關問題