当前位置:网站首页>POI add write excel file
POI add write excel file
2022-07-06 08:38:00 【renkai721】
Requirement scenario description :
Sometimes we need to upload a complete EXCEL Split into several different EXCEL, Then send it to people in different departments to deal with it , And then put these EXCEL Merge into one EXCEL In file .
The address of the following article is EXCEL2003 To deal with , If it is 2007 Versions above need to be modified manually HSSF by XSSF That's all right. .
POI:EXCEL Export and append - Visit the garden and recall - Blog Garden
Here is poi Code snippets processed
1、pom Add to file poi rely on
<!-- 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、 Additional writing EXCEL Core code .
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();
// ----------------- Additional data -------------------
if(beginRow > 1){
// Which line should I start with , Pay attention to what is passed here beginRow yes EXCEL Real lines , Row number
// The code needs to judge that it is greater than 1 When you go, you need to subtract the subscript 1, The program is written from 0 At the beginning .
// Because there is a header , therefore beginRow=1 There is no reduction here 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);
}
}
// Output Excel file
out = new FileOutputStream(saveOrderLocalPath);
workbook.write(out);
out.flush();
out.close();
fileInputStream.close();
log.info(" Append write EXCEL complete .");
}边栏推荐
- 深度剖析C语言指针
- [2022 广东省赛M] 拉格朗日插值 (多元函数极值 分治NTT)
- Mobile Test Engineer occupation yyds dry goods inventory
- 查看局域网中电脑设备
- MySQL learning record 10getting started with JDBC
- swagger设置字段required必填
- 2022.02.13 - NC003. Design LRU cache structure
- 2022.02.13 - NC001. Reverse linked list
- LDAP Application Section (4) Jenkins Access
- China dihydrolaurenol market forecast and investment strategy report (2022 Edition)
猜你喜欢

【ROS】usb_cam相机标定

Deep analysis of C language data storage in memory

Fibonacci sequence

Zhong Xuegao, who cannot be melted, cannot escape the life cycle of online celebrity products

【刷题】牛客网面试必刷TOP101

JVM performance tuning and practical basic theory - Part 1

个人电脑好用必备软件(使用过)

JVM performance tuning and practical basic theory - Part 1

Beijing invitation media

Analysis of the source code of cocos2d-x for mobile game security (mobile game reverse and protection)
随机推荐
On the inverse order problem of 01 knapsack problem in one-dimensional state
【Nvidia开发板】常见问题集 (不定时更新)
Permutation and combination function
LDAP应用篇(4)Jenkins接入
Circular reference of ES6 module
Light of domestic games destroyed by cracking
Char to leading 0
swagger设置字段required必填
TCP/IP协议
Visual implementation and inspection of visdom
如何进行接口测试测?有哪些注意事项?保姆级解读
LDAP應用篇(4)Jenkins接入
[MySQL] log
China high purity silver nitrate Market Research and investment strategy report (2022 Edition)
marathon-envs项目环境配置(强化学习模仿参考动作)
C语言双指针——经典题型
Summary of phased use of sonic one-stop open source distributed cluster cloud real machine test platform
Leetcode question brushing (5.31) string
堆排序详解
China polyether amine Market Forecast and investment strategy report (2022 Edition)