2010年2月27日 星期六

NPOI 格式設定問題

最近在操作 NPOI 儲存 Excel 後用 Excel 2003開啟時

當檔案的格式設定過多會出現錯誤訊息,提示無法開啟,畫面如下




其相關錯誤的原因請點我

測試以後發現,原先我的寫法是針對每一個儲存格都去設定他的格式

然而這些儲存格的格式每一欄都一樣,導致格式設定過多並且造成檔案肥大。

查找了一下文件發現 HSSFSheet.SetDefaultColumnStyle 能夠解決上述問題

其語法如下

HSSFCellStyle style = wb.CreateCellStyle();
style.BorderLeft = CellBorderType.THIN;
style.BorderTop = CellBorderType.THIN;
style.BorderRight = CellBorderType.THIN;
style.BorderBottom = CellBorderType.THIN;
style.Alignment = CellHorizontalAlignment.RIGHT;
style.DataFormat = format.GetFormat("0.00_);[Red](0.00)");
sheet.SetDefaultColumnStyle((short) 0, style); //第1欄的預設格式為 style


雖然我們能夠使用預設的格式來解決每個儲存格的格式設定,但是如果在某一欄中有好幾種格式要設定時

就需要先確定該欄位能夠分成幾個區塊,再一一藉由 SetDefaultColumnStyle 在填值之前先將格式設定

即可得到想要的排版樣式了!

沒有留言:

張貼留言