最近有寫Excel報表的需求,ClosedXML真的是個不錯的套件
1 2 3 4 5 6 7 8 9 10
| var workbook = new XLWorkbook(); var sheet_A = workbook.Worksheets.Add("Sheet_A");
worksheet.Cell(_index, 1).Value = "欄位一"; worksheet.Cell(_index, 2).Value = "欄位二"; worksheet.Cell(_index, 3).Value = "欄位三"; worksheet.Cell(_index, 4).Value = "欄位四"; worksheet.Cell(_index, 5).Value = "欄位五";
|
用法還滿簡單的,如果有更深入的用法想瞭解也可以到ClosedXml網站看文件
在使用的過程有遇到一個情況就是從DB裡面撈出大量的資料倒入Excel時,匯出打開檔案會顯示Excel已經損毀,可是直接把DB撈出來的資料用複製貼上卻可以完整地貼到Excel中,存檔再打開也不會壞掉。這個問題搞了好久…最後查到大陸網站得到以下的解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public static string ReplaceLowOrderASCIICharacters(string tmp) { StringBuilder info = new StringBuilder(); foreach (char cc in tmp) { int ss = (int)cc; if (((ss >= 0) && (ss <= 8)) || ((ss >= 11) && (ss <= 12)) || ((ss >= 14) && (ss <= 32))) info.AppendFormat(" ", ss); else info.Append(cc); } return info.ToString(); }
|
把字元丟到這個function去過濾後就可以避免錯誤了!!