当前位置:网站首页>poi追加写EXCEL文件
poi追加写EXCEL文件
2022-07-06 08:31:00 【renkai721】
需求场景描述:
我们有时候需要把用户上传的一个完整的EXCEL拆分为多个不同的EXCEL,然后发给不同部门的人处理完之后,再把这些EXCEL合并到一个EXCEL文件中。
下面的这个文章地址是EXCEL2003的处理,如果是2007版本以上的需要自己手动修改HSSF为XSSF就可以了。
下面是poi处理的代码片段
1、pom文件中增加poi依赖
<!-- poi start -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.2</version>
</dependency>
2、追加写EXCEL的核心代码。
public void appendExcel(String saveOrderLocalPath, int beginRow, List<SubmitYhdDecomposeExcel> list) throws IOException {
FileOutputStream out = null;
log.info("saveOrderLocalPath={},beginRow={}",saveOrderLocalPath,beginRow);
FileInputStream fileInputStream = new FileInputStream(saveOrderLocalPath);
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
XSSFCellStyle cellStyle = workbook.createCellStyle();
// -----------------追加数据-------------------
if(beginRow > 1){
// 从哪一行开始写,注意这里传递过来的beginRow是EXCEL真实的第几行,行数
// 代码中需要判断大于1行的时候需要下标减1,程序写入是从0开始的。
// 由于有表头,所以beginRow=1的时候这里不减1
beginRow -= 1;
}
for (int i = 0; i < list.size(); i++) {
SubmitYhdDecomposeExcel rowObj = list.get(i);
XSSFRow startRow = sheet.createRow(i + beginRow);
for (int col = 0; col < 18; col++) {
XSSFCell cell = startRow.createCell(col);
switch (col) {
case 0:
cell.setCellValue(rowObj.getCus_no());
break;
case 1:
cell.setCellValue(rowObj.getType());
break;
case 2:
cell.setCellValue(rowObj.getNum());
break;
case 3:
cell.setCellValue(rowObj.getPrice_input());
break;
case 4:
cell.setCellValue(rowObj.getNormal_type());
break;
case 5:
cell.setCellValue(rowObj.getBak());
break;
case 6:
cell.setCellValue(rowObj.getUnfit());
break;
case 7:
cell.setCellValue(rowObj.getPack());
break;
case 8:
cell.setCellValue(rowObj.getOne_price());
break;
case 9:
cell.setCellValue(rowObj.getLow_price());
break;
case 10:
cell.setCellValue(rowObj.getDate());
break;
case 11:
cell.setCellValue(rowObj.getCheap_type());
break;
case 12:
cell.setCellValue(rowObj.getCheap_bak());
break;
case 13:
cell.setCellValue(rowObj.getCheap_unfit());
break;
case 14:
cell.setCellValue(rowObj.getCheap_pack());
break;
case 15:
cell.setCellValue(rowObj.getCheap_one_price());
break;
case 16:
cell.setCellValue(rowObj.getCheap_low_price());
break;
case 17:
cell.setCellValue(rowObj.getCheap_date());
break;
default:
break;
}
cell.setCellStyle(cellStyle);
}
}
// 输出Excel文件
out = new FileOutputStream(saveOrderLocalPath);
workbook.write(out);
out.flush();
out.close();
fileInputStream.close();
log.info("追加写入EXCEL完成。");
}
边栏推荐
- 3. File operation 3-with
- marathon-envs项目环境配置(强化学习模仿参考动作)
- Migrate data from a tidb cluster to another tidb cluster
- 【ROS】usb_cam相机标定
- Research and investment forecast report of citronellol industry in China (2022 Edition)
- [secretly kill little partner pytorch20 days -day01- example of structured data modeling process]
- egg. JS getting started navigation: installation, use and learning
- Restore backup data on S3 compatible storage with tidb lightning
- Grayscale upgrade tidb operator
- FairGuard游戏加固:游戏出海热潮下,游戏安全面临新挑战
猜你喜欢
2022.02.13 - NC004. Print number of loops
marathon-envs项目环境配置(强化学习模仿参考动作)
软件卸载时遇到trying to use is on a network resource that is unavailable
Wincc7.5 download and installation tutorial (win10 system)
JS native implementation shuttle box
Beijing invitation media
ESP系列引脚說明圖匯總
2022.02.13 - NC003. Design LRU cache structure
All the ArrayList knowledge you want to know is here
2022 Inner Mongolia latest water conservancy and hydropower construction safety officer simulation examination questions and answers
随机推荐
Leetcode question brushing (5.31) string
Colorlog combined with logging to print colored logs
角色动画(Character Animation)的现状与趋势
gcc动态库fPIC和fpic编译选项差异介绍
tree树的精准查询
堆排序详解
China dihydrolaurenol market forecast and investment strategy report (2022 Edition)
LDAP应用篇(4)Jenkins接入
Deep learning: derivation of shallow neural networks and deep neural networks
C language double pointer -- classic question type
Upgrade tidb with tiup
Fibonacci sequence
Migrate data from SQL files to tidb
IoT -- 解读物联网四层架构
C language custom type: struct
leetcode刷题 (5.29) 哈希表
Process of obtaining the electronic version of academic qualifications of xuexin.com
VMware 虚拟化集群
Use Alibaba icon in uniapp
【MySQL】鎖