Apache POI出现的错误原因

发布于 2021-11-17 01:29:35 字数 2157 浏览 930 评论 10

在应用POI的过程中出现了:org.apache.poi.hssf.usermodel.HSSFWorkbook.getSheetIndex(Lorg/apache/poi/hssf/usermodel/HSSFSheet;)I这样的错误,请问是何原因。

以下是测试实例

package test;

import java.util.Date;

import wsepr.easypoi.excel.Excel;
import wsepr.easypoi.excel.editor.IFontEditor;
import wsepr.easypoi.excel.style.Align;
import wsepr.easypoi.excel.style.BorderStyle;
import wsepr.easypoi.excel.style.Color;
import wsepr.easypoi.excel.style.font.BoldWeight;
import wsepr.easypoi.excel.style.font.Font;

public class HelloWord {
	public static void main(String[] args) {
		Excel excel = new Excel();
		excel.cell(0, 0) // 选择第一个单元格
				.value("Hello World!")// 写入值
				.align(Align.CENTER)// 设置水平对齐方式
				.bgColor(Color.LIGHT_YELLOW)// 设置背景色
				.height(30)// 设置高度
				.font(new IFontEditor() {// 设置字体
					public void updateFont(Font font) {
						font.boldweight(BoldWeight.BOLD);// 粗体
						font.color(Color.BROWN);// 字体颜色
					}
				});
		excel.region(0, 0, 0, 10).merge();// 合并第一行10个单元格

		Object[] val = new Object[] { "插入一行数据", 123, 'A', Math.PI, new Date(),
				"hello" };

		excel.row(2)// 选择第3行
				.value(val)// 写入数据
				.addWidth(2000)// 增加宽度
				.borderOuter(BorderStyle.DASH_DOT_DOT, Color.CORAL);// 设置外边框样式

		excel.row(4, 1)// 选择第5行,但忽略第1个单元格,从第2个单元格开始操作
				.value(val).borderFull(BorderStyle.DASH_DOT, Color.RED);// 设置全部边框

		excel.row(6)// 选择第7行
				.value(val, 2)// 从第3个单元格开始写入数据
				.borderTop(BorderStyle.THIN, Color.BLUE);// 只设置上边框

		excel.column(11)
				.value(val)
				// 也可以操作一列
				.align(Align.CENTER)
				.borderFull(BorderStyle.THICK, Color.CORNFLOWER_BLUE)
				.autoWidth();// 根据内容长度,自动调整列宽

		excel.cell(7, 0).value("=IF(B3=123,"等于","不等于")");// 写入Excel函数
		excel.cell(7, 1).value(0.578923).dataFormat("0.00%");// 设置数据格式

		excel.region(8, 0, 10, 1).image(
				"http://poi.apache.org/resources/images/group-logo.jpg");// 插入一张图片

		excel.sheet().freeze(1, 0)// 冻结第一行
				.sheetName("这是第一个表");// 重命名当前处于工作状态的表的名称

		// 操作第二个表
		excel.setWorkingSheet(1).sheetName("第二个表");// 把第二个表设置为工作状态,并改名

		excel.row(0).value(val);// 第二个表写入数据
		excel.saveExcel("F:/helloworld.xls");
	}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

平生欢 2021-11-19 04:57:18

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFWorkbook.getSheetIndex(Lorg/apache/poi/hssf/usermodel/HSSFSheet;)I

温柔少女心 2021-11-19 04:57:18

 用sources解压出来用就可以,jar包的就不行,郁闷啊

千纸鹤带着心事 2021-11-19 04:57:18

换成poi3.8就行了  以前版本的bug 

陌上芳菲 2021-11-19 04:57:14

直接用POI3.7也是这样的异常提示。

带上头具痛哭 2021-11-19 04:56:50

用  jexcel 输出比较方便

回忆凄美了谁 2021-11-19 04:55:53

你这里用了 EasyPOI 这个项目,而 POI 版本更新挺快的。二者肯定存在不兼容的地方

无法言说的痛 2021-11-19 04:50:13

版本问题吧,升级一下 POI 的版本。或者检查一下是否项目中有多个 POI ,而老的那个优先级更高

醉生梦死 2021-11-19 03:16:26

版本问题吧,升级一下 POI 的版本。或者检查一下是否项目中有多个 POI ,而老的那个优先级更高

风透绣罗衣 2021-11-19 00:51:08

easypoi还是测试阶段的,不完善。现在打算找时间仔细测试、完善

葬花如无物 2021-11-18 06:23:35

这不是错误哦,你要把异常信息也贴出来

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文