當看到這個錯誤的時候,網上搜索可以會有些說列數有限制之類的說法,這個說法是相對於 Office 2003 的,在 Office 2007 之前,最多只可以創建 256 列;在 Office 2007 之后,可以創建的列數大多了,使用 Office 2013 實測最多可以創建 16384 列。
解決辦法:
其實換用另外一個 NPOI 中的類就可以了,參見以下代碼:
var workbook = new XSSFWorkbook(); // 最多只能創建 16384 列 //var workbook = new HSSFWorkbook(); // 最多只能創建 256 列 var sheet = workbook.CreateSheet( "testsheet" ); var fontRed = workbook.CreateFont(); var redStyle = workbook.CreateCellStyle(); fontRed.Color = HSSFColor.Red.Index; redStyle.SetFont( fontRed ); var row = sheet.CreateRow( 0 ); for (var i = 0; i <= 16383; i++) { row.CreateCell( i ).SetCellValue( "header" + i ); row.GetCell(i).CellStyle = redStyle; } var path = AppDomain.CurrentDomain.BaseDirectory + "a.xlsx"; using( var fs = new FileStream(path, FileMode.Create) ) { workbook.Write( fs ); }
測試使用 NPOI 版本為:NPOI.2.1.3.1