问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA使用poi包,向Excel中写入批量数据

发布网友 发布时间:2022-04-19 19:47

我来回答

1个回答

热心网友 时间:2023-07-09 01:35

public static void drawExcel(HSSFWorkbook wb, String sheetName, String title, int n, List<?> exlList, int[] index){
List<Object[]> exList =(List<Object[]>)exlList;
int len = exList.get(0).length;
// 创建一个sheet表单
HSSFSheet sheet = wb.createSheet(sheetName);
Region region = null;
//样式
HSSFCellStyle cellStyle1 = setStyleBorder(wb);
HSSFCellStyle cellStyle2 = setStyleFontBorder(wb);
// 创建标题行
HSSFRow row = sheet.createRow(0);
row.setHeight((short)500);
// 创建单元格
HSSFCell cell = null;
if(title != null && !"".equals(title)){
region = new Region(0, (short)0, 0, (short)(len- 1));
sheet.addMergedRegion(region);

cell = row.createCell(0);
// 标题写入单元格
cell.setCellValue(title);
cell.setCellStyle(setStyleFontSize(wb, 18));
}else{
n = n - 1;
}

NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(8);
//合计信息
Double[] sum = new Double[len];
Object[] s = null;
for(int i = 0; i < exList.size(); i++){
s = exList.get(i);
row = sheet.createRow(i + n);
// 创建数据行
for(int j = 0; j < s.length; j++){
cell = row.createCell(j);
/***
* jobin create
*/
if(s[j] instanceof Integer || s[j] instanceof Float){
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
}else{
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}
if(!StringUtils.isNotEmpty(s[j])){
cell.setCellStyle(cellStyle1);
continue;
}
String[] rs = null;
int l = 3000;
if(i == 0 && s[j].toString().indexOf(",") > 0){
rs = s[j].toString().split(",");
cell.setCellValue(rs[0]);
l = Integer.parseInt(rs[1]);
}else{
cell.setCellValue(s[j].toString());
}
if(i == 0){
cell.setCellStyle(cellStyle2);
//设置列宽
//if(j == 0){
sheet.setColumnWidth(j, l);
//}else if(j == s.length -1){
// sheet.setColumnWidth(j, 5000);
//}else{
// sheet.setColumnWidth(j, 3000);
//}
}else{
cell.setCellStyle(cellStyle1);
//合计统计
if(index != null){
for(int in : index){
if(in == j){
if(sum[in] == null) sum[in] = 0.0;
sum[in] += Double.parseDouble(s[j].toString());
}
}
}
}
}
}
//合计信息
if(index != null){
region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));
sheet.addMergedRegion(region);
row = sheet.createRow(exList.size() + n);
for(int i = 0; i < sum.length; i++){
cell = row.createCell(i);
cell.setCellStyle(cellStyle2);
if(i == 0){
cell.setCellValue("合计");
}else if(sum[i] != null){
cell.setCellValue(formatter.format(sum[i]).replace(",", ""));
}
}
}

}
核心代码,我项目上使用的
java poi Excel大数据量导入怎么提高速度

POI3.8的SXSSF包是XSSF的一个扩展版本,支持流处理,在生成大数据量的电子表格且堆空间有限时使用。SXSSF通过限制内存中可访问的记录行数来实现其低内存利用,当达到限定值时,新一行数据的加入会引起老一行的数据刷新到硬盘。比如内存中限制行数为100,当行号到达101时,行号为0的记录刷新到硬盘并从内...

java多线程进行大批量excel数据导入实现方案?

方法一:使用JExcel API。此方法直接操作Excel文件,适合数据量不大且对性能要求不高的场景。在多线程导入时,可将数据分类分块,每个线程处理一块数据,提升导入效率。方法二:将Excel数据转换为CSV格式,再导入到目标平台。这种方法相对方法一在性能上有所提升,同时减少了对Java库的依赖。同样在多线程环...

用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的...

回答:干嘛还那么麻烦的用poi读数据 然后又全部写到新文件。直接用IO流实现文件的读写不就得啦。

java用poi往excel里写数据遇到换行问题

String[] arr = new String[] { "a", "b", "c", "d", "a", "b", "c", "d", "a", "b", "c", "d" };List&lt;String&gt; list = Arrays.asList(arr);if (list != null) { StringBuffer buff = new StringBuffer();int colIndex = 0;// 用来标识列下标 for (int i ...

java poi插入数据到已经存在的excel但不覆盖原来的数据 怎么实现 在线...

poi的Sheet对象可以获取最后一行位置,如int lastRowNum = sheet.getLastRowNum(); 知道最后一行位置,就可以在最后一行后面开始加入新数据,如Row row = sheet.getRow(lastRowNum+1);

java操作poi怎么更改excel中的数据

POI里可能没有这个机能。 不过你可以这样做。 把带有这个格式的Excel文件,做为模板。 每次把模板文件读进来,把自己要输出的数据填到对应的单元格里。 之后,把填完数据的Excel文件,保存到指定路径里。或者从浏览器里弹出。

您好我也遇到POI写入excel但是显示不出来问题。请问你怎么解决的_百度...

今天在使用POI将float类型数据写EXCEL入时候会出现写入的数值与实际数值不符的问题;例如我将数据4444.4443写入EXCEL中(已将数据精度设置为:df.getFormat("#,##0.0"))出现问题图及正常图详见下图。此问题在从数据库中读出记录写入EXCEL时出现,直接往EXCEL文件中写入数据时完全正常;在数据库读出记录...

Java开发中如何用POI优雅的导出Excel文件

实现步骤包括:1)定义注解,标注需要导出的字段及字段名称,以便生成表头。2)实体类设计,根据注解确定哪些字段需要导出到Excel。3)使用POI库操作Excel文件,通过HttpServletResponse或文件存储进行输出。具体实现中,将数据从集合中读取,根据注解生成表头,并填充到Excel的相应列中。最后,将Excel文件输出到...

poi如何可以讲50000条数据保存入excel中(A1:Z50000)

回答:excel只是个电子表而已,桌面应用,运行的时候会将所有数据读到内存中以加快执行速度。它处理不了这么多数据。你没法把它当数据库用。建议直接将数据输出为xml格式或者html的table格式,这样excel也可以打开。

java poi包处理数据,将数据导入到已经存在的excel中,为什么打开excel后...

已经得到了A3和A4的值 为什么还用excel的表达式来整,直接将结果填入A5不就可以了

poi将数据写入excel大数据 poi写入excel很慢 poi写入excel poi写入整形数据 apache poi excel poi导入excel poi数据怎么用 java poi excel导出 poi excel
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
世界200米短跑比赛游戏介绍 短跑200米,技巧是什么?求体育达人回复。 地瓜藤生药材鉴定 地瓜藤《中华本草》:地瓜藤 ...疼的要死,蛀的快没了,又不敢拿掉,怕影响其他牙。请问怎么办... 卧室内适合养什么树适合卧室的植物 ...而且牙齿不整齐,而且大牙咀齿面黑黑的,怎么 本人今年14岁,蛀牙时间不详,蛀牙严重, 微信对方撤回了我还能看到吗 一打哈欠左耳里面就疼,是怎么了 前几个星期受过伤 java中使用POI如何更新EXCEL中的一行数据? java+poi 设置excel数据格式 java poi 操作excel 问题 java poi读取excel数据怎么是修改之前呢,打开exce... java poi编写代码来设置Excel单元格的样式 java操作poi怎么更改excel中的数据 冬天的冷风吹到脸上红红的一点一点,怎样可以预防? 冬天气候干燥,脸上特别容易长痘该怎么办? 为何冬天脸上皮肤容易干燥,还有冬天多久洗一次澡好 冬季脸部易过敏怎么办? 进入冬天常常感到脸部干燥,该怎么办啊? 脸上一到冬天就容易泛红怎么办阿 为什么冬天脸上容易出红斑 冬天脸上容易发红发烫怎么去除 冬天脸上容易干,过敏,怎么护理? 一到冬天脸上就起皮怎么办 冬天脸出油怎么回事?为啥冬天脸也会出油? 冬天天气干燥,脸上容易干燥起皮,脸上起皮要怎么办? 冬天脸上很容易掉皮屑,是缺水吗? 为什么我冬天脸上更容易出油? java使用poi读取excel时,电话号码变成了科学计数... java poi操作Excel文件 生成的Excel文件为里面的内... java poi设置excel字体部分失效 java中poi读取excel时报错:Unable to construct r... java 用POI处理比较大的word和excel文档。 java POI excel 自动调整行高。请高手给予解答!!... java poi 读取excel 数字类型的怎么读到以后1都变... java 使用poi往excel文件写入,如何每次追加一条,... java用poi导出excel文件,打开导出的文件时报错,... JAVA编程中用Apache POI 怎么用SXSSFWorkbook对已... java用poi往excel里写数据遇到换行问题 初中的压强是什么啊? 初中物理压强这方面知识点 初中物理 的 压强 浮力 的公式 都是什么? 求 初中物理关于压强的所有公式和变形后的所有公式。 压强公式,初中物理的 跪求初中物理压强知识点 初中物理压强公式,字母各表示什么。以及单位符号 压强公式及其分别的用法(初中总结) 初中物理压力压强公式总结