NPOI 列宽自适应 代码示例

//列宽自适应,只对英文和数字有效
for (int i = 0; i <= maxColumn; i++)
{
    sheet.AutoSizeColumn(i);
}
//获取当前列的宽度,然后对比本列的长度,取最大值
for (int columnNum = 0; columnNum <= maxColumn; columnNum++)
{
    int columnWidth = sheet.GetColumnWidth(columnNum) / 256;
    for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++)
    {
        IRow currentRow;
        //当前行未被使用过
        if (sheet.GetRow(rowNum) == null)
        {
            currentRow = sheet.CreateRow(rowNum);
        }
        else
        {
            currentRow = sheet.GetRow(rowNum);
        }

        if(currentRow.GetCell(columnNum) != null)
        {
            ICell currentCell = currentRow.GetCell(columnNum);
            int length = Encoding.Default.GetBytes(currentCell.ToString()).Length;
            if (columnWidth < length)
            {
                columnWidth = length;
            }
        }
    }
    sheet.SetColumnWidth(columnNum, columnWidth * 256);
}

  

时间: 2024-10-16 15:43:44

NPOI 列宽自适应 代码示例的相关文章

easyui datagird 列宽自适应

代码如下: 1 onLoadSuccess: function (data) { 2 var rows = data.rows; //得到行数据 3 var columnMaxCharacter = new Array(); //该列最大字符数 4 //遍历所有行数据,获得该列数据的最大字符数 5 var propertys = Object.getOwnPropertyNames(rows[0]); 6 for (var i = 0; i < rows.length; i++) { 7 for

让DataGridView的列宽自适应内容

在使用DataGridView操作数据的时候,为了美观,希望列宽可以适应内容. 其实就一行代码: Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 这就搞定了,效果就是列宽会根据内容以及表头宽度自行判断,最后调整到合适的宽度. AutoSizeMode这个属性并不显示在"属性"窗口中.如果你的DataGridView是动态绑定数据的, 那就只能在代码中设 置.如果你的DataGridView列名是设计好

TListView 列宽自适应大小

看图说话,直接看效果. 设置前: 设置后: 我使用的设置: listview1.Columns[1].Width:=-2; //Columns[1]设置SubItems 扩展: a. ListView.Column[0].Width := -1;//列宽根据列内容自适应,此时保证列内容都可见. b. ListView.Column[0].Width := -2;//列宽根据列标题自适应,此时保证列标题可见. 实践是检验真理的唯一标准..Let's do it together! 版权声明:本文为

highchart 柱状图,列宽自适应(x轴是时间的特殊情况)

1.柱子列宽自适属性: pointWidth:25, //柱子宽度,如果设定该值,则下面2个属性无效 pointPadding: 0.4,//每列之间的距离值,默认此值为0.1 groupPadding: 0,//每个值之间的间距,其实和poingPadding有一样的效果.不过这个主要是用于对付存在分组的情况 2.x轴属性设置里面,需要把间隔固定死,否则会出现柱子重叠情况 //表示时间间隔,4小时(如果不固定死,则数据源的量变多时,柱子会出现重叠情况) tickInterval: 4 * 36

VC CListCtrl 第一列列宽自适应

原文链接: http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html 今天用VC写工具的时候用到CListView,并且ListCtrl的第一列需要自动拉伸,以占满空白区域 Delphi做这个设置是很容易的,只要将Column的AutoSize设置为True就可以了 不过VC/SDK的AutoSize其实是根据Item的文本长度来自动设置Column Width,跟我的要求不符,只好自己实现了 其实很简单,就是觉得麻烦... vo

C# 使用NPOI导出Excel,首行冻结,添加筛选,填充颜色,列宽自适应

使用NuGet安装NPOI,添加以下命名空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.SS.Util; using NPOI.XSSF.UserModel; 添加类 ExcelExporter public static class ExcelExporter { /// <summary> /// DataTable导出Excel /// </summary> /// <param nam

datatables定义列宽自适应方法

不同的分辨率以及浏览器自适应,列表不出现滚动条,表格内容自动换行. 方法:通过定义表格列属性,结合<table>CSS样式和定义的列单元格样式 'td_huanhang'/'td_unhuanhang' "columnDefs": [ {targets: 9, orderable: false, width: "10%"}, ] columns: [ {"data": "addr", "name"

Java 设置Excel自适应行高、列宽

在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定列宽,缩小数据字体大小适应列宽 本文将通过java程序来介绍具体的自适应设置方法.   工具:Free Spire.XLS for Java (免费版) 注:可通过官网下载包,并解压将lib文件夹下的jar文件导入java程序:或者通过maven仓库下载并导入. 参考如下导入效果: Java 代码示

XtraReport交叉表自适应行高及最佳列宽

1.自适应行头的行高,绑定CustomRowHeight事件,代码如下: private Graphics gr = Graphics.FromHwnd(IntPtr.Zero); private void pivotGrid1_CustomRowHeight(object sender, HuanSi.XtraReports.UI.PivotGrid.PivotCustomRowHeightEventArgs e) { e.RowHeight = 20; var grid=sender as