NPOI自適應列寬


當本地沒有安裝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比較合適。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM