NPOI自適應列寬
阿新 • • 發佈:2019-01-05
當本地沒有安裝Excel,但是又想匯出Excel,採用Office外掛是行不通的,NPOI是匯出Excel的一個開源的外掛。在匯出Excel後,為了方便閱讀,可以才採用自適應列寬的方式使得單元格的寬度和文字的寬度接近。NPOI中工作簿ISheet有自適應列寬的方法,但是其效果列寬還是比單元中文字的寬度稍微大一點。此時我們可以自己計算其寬度,自定義列寬。一下這種方式是支援中英文以及數字的。
public void AutoColumnWidth(ISheet sheet,int cols) { for (int col = 0; col <= cols; col++) { sheet.AutoSizeColumn(col);//自適應寬度,但是其實還是比實際文字要寬 int columnWidth = sheet.GetColumnWidth(col) / 256;//獲取當前列寬度 for (int rowIndex = 1; rowIndex <= sheet.LastRowNum; rowIndex++) { IRow row = sheet.GetRow(rowIndex); ICell cell = row.GetCell(col);int contextLength = Encoding.UTF8.GetBytes(cell.ToString()).Length;//獲取當前單元格的內容寬度 columnWidth = columnWidth < contextLength ? contextLength : columnWidth; } sheet.SetColumnWidth(col, columnWidth * 200);// } }
sheet.SetColumnWidth(col, columnWidth * 200);// 經過測試200比較合適。