服务器运行一直都是正常的,最近却爆了一个让人头疼的错误。

先贴错误:

java.lang.IllegalArgumentException: Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV') 
at org.apache.poi.hssf.usermodel.HSSFCell.checkBounds(HSSFCell.java:921) 
at org.apache.poi.hssf.usermodel.HSSFCell.<init>(HSSFCell.java:161) 
at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:141) 
at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:119) 
at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:97

看错误猜到七七八八了:由于03对行数(65535)和列数(255)有限制,所以当数据超出范围后就报错了。

解决办法:把HSSF改用XSSF模块生成Excel07的文档

其实也可以进行验证检测,根据先贴excel版本跟导出数据是否超过限制,来选择HSSF还是XSSF

贴部分代码(其他自行补充):

is2003=false;
if(is2003){
      // 加载下拉列表内容
      DVConstraint constraint = DVConstraint.createFormulaListConstraint(formulaString);
      // 设置数据有效性加载在哪个单元格上。
    // 四个参数分别是:起始行、终止行、起始列、终止列
  int firstRow = naturalRowIndex - 1;
  int lastRow = naturalRowIndex - 1;
  int firstCol = naturalColumnIndex - 1;
  int lastCol = naturalColumnIndex - 1;
  CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
  // 数据有效性对象
  DataValidation data_validation_list = new HSSFDataValidation(regions, constraint);//new HSSFDataValidation(regions, constraint);
  // 设置输入信息提示信息
  data_validation_list.createPromptBox("下拉选择提示", "请使用下拉方式选择合适的值!");
  // 设置输入错误提示信息
  data_validation_list.createErrorBox("选择错误提示", "你输入的值未在备选列表中,请下拉选择合适的值!");
  //sheet.addValidationData(data_validation_list);
  return data_validation_list;
 }else{

  XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet);
  // 加载下拉列表内容
  XSSFDataValidationConstraint constraint = (XSSFDataValidationConstraint) dvHelper
  .createFormulaListConstraint(formulaString);
  // 设置数据有效性加载在哪个单元格上。
  // 四个参数分别是:起始行、终止行、起始列、终止列
  int firstRow = naturalRowIndex - 1;
  int lastRow = naturalRowIndex - 1;
  int firstCol = naturalColumnIndex - 1;
  int lastCol = naturalColumnIndex - 1;
  CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
  DataValidation data_validation_list = (XSSFDataValidation) dvHelper.createValidation(
  constraint, regions);
  // 设置输入信息提示信息
  data_validation_list.createPromptBox("下拉选择提示", "请使用下拉方式选择合适的值!");
  // 设置输入错误提示信息
  data_validation_list.createErrorBox("选择错误提示", "你输入的值未在备选列表中,请下拉选择合适的值!");
  sheet.addValidationData(data_validation_list);
  return data_validation_list;
}

代码不是最简的,还可以做一部分的提取处理.........嘻嘻

转载于:https://www.cnblogs.com/LIFE-bug/p/5443027.html

关于Excel2003行数(65535)和列数(255)限制问题解决相关推荐

  1. 确定一个Excel表格的最大行数和最大列数

    怎么确定一个Excel表格的最大行数和最大列数?基于第一个问题,如果中间有跨行列的单元格,那么就有空值,不能简单通过循环确定最大行列数.    Dim    xlWorkSheet    As     ...

  2. poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum 、lastCellNum

    poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum .lastCellNum 一.概述 1.如下图,有一个 4行 3列的excel 表格数据,用 poi 读取后,分别获取 最大 ...

  3. 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等)。

    [题目描述] 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等). [输入] 一个整数n. [输出] 指定格式的菱形. [样例输入] 11↙ [样例输出] * *** ***** **** ...

  4. java输入行数打印菱形_JAVA题,输入行数,输入列数,输出一个菱形

    展开全部 1,冒泡排序 1. /** 2. * JAVA排序算法实现代码-冒泡(Bubble Sort)排序. 3. * 4. * 5. * 6. */ 7. public class Test { ...

  5. 首先从键盘上两个矩阵的行数n和列数m,然后输入两个矩阵A和B的元素值,最后求出两个矩阵的和C并输出其元素值。

    输入格式: 第1行包含两个整数n和m,表示矩阵的行数和列数. 接下来n行,每行m个整数,表示矩阵A的元素值. 再接下来n行,每行m个整数,表示矩阵B的元素值. 相邻两个整数之间用空格分隔. 输出格式: ...

  6. 如何把数百个列数不定但格式相同的 Excel 汇总合计

    现有几百个格式相同的 Excel(日报): Excel 格式和内容如下: 其中行数和列数不确定,但所有 Excel 的列是相同的. 现在需要将几百个 Excel 按项目金额种类和员工求和汇总,形成如下 ...

  7. Uibot-Excel自动获取某个工作表的总行数、总列数,读取其全部内容

    背景: Uibot自带的Excel读取区域,需要自己手动设置读取区域的范围,如果excel文件区域的范围发生了变化,就又需要手动修改,挺麻烦的.Uibot的资料不多,搜了很久没能解决问题,所以,无奈之 ...

  8. mysql一列数除以一列数和_MySQL查询将列除以100?

    让我们首先创建一个表-mysql> create table DemoTable ( Number float ); 使用插入命令在表中插入记录-mysql> insert into De ...

  9. MySQL 表列数和行大小有哪些限制?

    列数限制 MySQL对每个表有4096列的硬限制,但是对于给定的表,有效最大值可能会更少.确切的列限制取决于几个因素: 表的最大行大小限制了列的数量(可能还有大小),因为所有列的总长度不能超过该大小 ...

  10. c语言向表格内存入数据,怎么实现横向到存入多个单元格,在列数固定的报表中逐格横向填充数据并折行...

    在很多需要打印的报表中,受限于纸张的大小,往往会限制行数或者固定列数.我们在<单据类报表的制作>一文中,曾经介绍了限制了行数的情况如何实现,现在,我们再来看一下,在固定了列数的情况下,如果 ...

最新文章

  1. Android开发之sdcard读写数据(源代码分享)
  2. RichEdit使用大全
  3. React Native的TextInput组件去掉下划线和使用背景图片
  4. 今日新出!旷视提出One-Shot模型搜索框架的新变体
  5. 【Sentry】为什么Cloudera要创建Hadoop安全组件Sentry?
  6. empinfo Oracle数据库,Oracle:其他数据库对象
  7. ASP.NET MVC3书店--第二节 控制器(转)
  8. c#2.0 IEnumberable接口
  9. 向右箭头代码css,CSS的箭头代码
  10. mysql修改 mysql.sock路径导致登录时异常
  11. 如何设置HttpClient请求的Content-Type标头?
  12. TIA博途软件中程序编辑区标题上的收藏快捷指令取消了,如何恢复显示?
  13. TIMESAT 无格式文件迭代转tif
  14. Python实现猜单词游戏
  15. QWebEngine自动添加麦克风和摄像头权限
  16. Python - AES SHA1PRNG 加密解密总结
  17. ssrf漏洞php代码审计1
  18. dubbo的handler机制
  19. 经济学人:富士康转变生产模式 机器不会自杀
  20. 浪潮财务软件SQL SERVER数据库数据删除恢复成功

热门文章

  1. 如何把pdf文件变小一点?
  2. java applepay_ApplePay对接java后台详细代码
  3. 走向.NET架构设计---第二章:设计 测试 代码
  4. python将经纬度坐标转换为xy_Python将x,y数据转换为经纬度d
  5. 用letax写毕业论文-- 原创性声明、承诺书、授权书
  6. 微信app用户及市场调研
  7. mysql中orderby用法_MySQL教程:OrderBy用法_MySQL
  8. haxm device is not found
  9. 徐耀赐:人因与道路工程设计1(图文版)
  10. 安装Alfa Awus 1900 驱动到 Kali Linux