zoukankan      html  css  js  c++  java
  • 使用Aspose.Cells组件生成Excel文件列宽度自适应时出错:Column width must be between 0 and 255

    错误提示:Column width must be between 0 and 255

    出错处

             /// <summary>          
            /// 设置表页的列宽度自适应          
            /// </summary>          
            /// <param name="sheet">worksheet对象</param>          
            void setColumnWithAuto(Worksheet sheet)          
            {              
                Cells cells = sheet.Cells;              
                int columnCount = cells.MaxColumn;  //获取表页的最大列数              
                int rowCount = cells.MaxRow;        //获取表页的最大行数                            
                for (int col = 0; col < columnCount; col++)              
                {                  
                    sheet.AutoFitColumn(col, 0, rowCount);              
                }              
                for (int col = 0; col < columnCount; col++)              
                {  
                    cells.SetColumnWidthPixel(col, cells.GetColumnWidthPixel(col) + 30);
                }          
            }

    原因分析:撰写代码者是参考网上的代码,如http://www.cnblogs.com/kdkler/p/4508134.html,但由于输出时单个单元格内内容过长,导致报错。

    修改:增加一层判断

       /// <summary>          
            /// 设置表页的列宽度自适应          
            /// </summary>         
            /// /// <param name="sheet">worksheet对象</param>       
            public static void setColumnWithAuto(Worksheet sheet)
            {
                Cells cells = sheet.Cells;
                int columnCount = cells.MaxColumn + 1;
                //获取表页的最大列数            
                int rowCount = cells.MaxRow;
                //获取表页的最大行数                     
                for (int col = 0; col < columnCount; col++)
                {
                    sheet.AutoFitColumn(col, 0, rowCount);
                }
                for (int col = 0; col < columnCount; col++)
                {
                    int pixel = cells.GetColumnWidthPixel(col)+30;
                    if (pixel > 255)
                    {
                        cells.SetColumnWidthPixel(col, 255);
                    }
                    else
                    {
                        cells.SetColumnWidthPixel(col, pixel);
                    }
                }
            }

  • 相关阅读:
    刘备和诸葛亮闹翻:无意说出蜀国灭亡的根源?
    亚马逊为什么能吞噬世界?贝索斯有这么一种独特的战略思维
    现在的社会,能负债的人,一定是有本事的人
    富士康为何转向美国:人口红利消失 炒房带来恶性循环
    中国华为:硅谷风混搭国企作派
    亚马逊拟斥资15亿美元建航空货运中心
    比数字工具更好用的纸和笔
    张小龙的克制 小程序 微信
    阿里前CEO卫哲用自己10余年经历,倾诉B2B的三差、四率、两大坑
    关于自信的励志名言
  • 原文地址:https://www.cnblogs.com/mcwym/p/6888166.html
Copyright © 2011-2022 走看看