关于Excel2003行数(65535)和列数(255)限制问题解决
服务器运行一直都是正常的,最近却爆了一个让人头疼的错误。
先贴错误:
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)限制问题解决相关推荐
- 确定一个Excel表格的最大行数和最大列数
怎么确定一个Excel表格的最大行数和最大列数?基于第一个问题,如果中间有跨行列的单元格,那么就有空值,不能简单通过循环确定最大行列数. Dim xlWorkSheet As ...
- poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum 、lastCellNum
poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum .lastCellNum 一.概述 1.如下图,有一个 4行 3列的excel 表格数据,用 poi 读取后,分别获取 最大 ...
- 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等)。
[题目描述] 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等). [输入] 一个整数n. [输出] 指定格式的菱形. [样例输入] 11↙ [样例输出] * *** ***** **** ...
- java输入行数打印菱形_JAVA题,输入行数,输入列数,输出一个菱形
展开全部 1,冒泡排序 1. /** 2. * JAVA排序算法实现代码-冒泡(Bubble Sort)排序. 3. * 4. * 5. * 6. */ 7. public class Test { ...
- 首先从键盘上两个矩阵的行数n和列数m,然后输入两个矩阵A和B的元素值,最后求出两个矩阵的和C并输出其元素值。
输入格式: 第1行包含两个整数n和m,表示矩阵的行数和列数. 接下来n行,每行m个整数,表示矩阵A的元素值. 再接下来n行,每行m个整数,表示矩阵B的元素值. 相邻两个整数之间用空格分隔. 输出格式: ...
- 如何把数百个列数不定但格式相同的 Excel 汇总合计
现有几百个格式相同的 Excel(日报): Excel 格式和内容如下: 其中行数和列数不确定,但所有 Excel 的列是相同的. 现在需要将几百个 Excel 按项目金额种类和员工求和汇总,形成如下 ...
- Uibot-Excel自动获取某个工作表的总行数、总列数,读取其全部内容
背景: Uibot自带的Excel读取区域,需要自己手动设置读取区域的范围,如果excel文件区域的范围发生了变化,就又需要手动修改,挺麻烦的.Uibot的资料不多,搜了很久没能解决问题,所以,无奈之 ...
- mysql一列数除以一列数和_MySQL查询将列除以100?
让我们首先创建一个表-mysql> create table DemoTable ( Number float ); 使用插入命令在表中插入记录-mysql> insert into De ...
- MySQL 表列数和行大小有哪些限制?
列数限制 MySQL对每个表有4096列的硬限制,但是对于给定的表,有效最大值可能会更少.确切的列限制取决于几个因素: 表的最大行大小限制了列的数量(可能还有大小),因为所有列的总长度不能超过该大小 ...
- c语言向表格内存入数据,怎么实现横向到存入多个单元格,在列数固定的报表中逐格横向填充数据并折行...
在很多需要打印的报表中,受限于纸张的大小,往往会限制行数或者固定列数.我们在<单据类报表的制作>一文中,曾经介绍了限制了行数的情况如何实现,现在,我们再来看一下,在固定了列数的情况下,如果 ...
最新文章
- Android开发之sdcard读写数据(源代码分享)
- RichEdit使用大全
- React Native的TextInput组件去掉下划线和使用背景图片
- 今日新出!旷视提出One-Shot模型搜索框架的新变体
- 【Sentry】为什么Cloudera要创建Hadoop安全组件Sentry?
- empinfo Oracle数据库,Oracle:其他数据库对象
- ASP.NET MVC3书店--第二节 控制器(转)
- c#2.0 IEnumberable接口
- 向右箭头代码css,CSS的箭头代码
- mysql修改 mysql.sock路径导致登录时异常
- 如何设置HttpClient请求的Content-Type标头?
- TIA博途软件中程序编辑区标题上的收藏快捷指令取消了,如何恢复显示?
- TIMESAT 无格式文件迭代转tif
- Python实现猜单词游戏
- QWebEngine自动添加麦克风和摄像头权限
- Python - AES SHA1PRNG 加密解密总结
- ssrf漏洞php代码审计1
- dubbo的handler机制
- 经济学人:富士康转变生产模式 机器不会自杀
- 浪潮财务软件SQL SERVER数据库数据删除恢复成功
热门文章
- 如何把pdf文件变小一点?
- java applepay_ApplePay对接java后台详细代码
- 走向.NET架构设计---第二章:设计 测试 代码
- python将经纬度坐标转换为xy_Python将x,y数据转换为经纬度d
- 用letax写毕业论文-- 原创性声明、承诺书、授权书
- 微信app用户及市场调研
- mysql中orderby用法_MySQL教程:OrderBy用法_MySQL
- haxm device is not found
- 徐耀赐:人因与道路工程设计1(图文版)
- 安装Alfa Awus 1900 驱动到 Kali Linux