当前位置:网站首页>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 .");
}
边栏推荐
猜你喜欢
Image, CV2 read the conversion and size resize change of numpy array of pictures
堆排序详解
被破解毁掉的国产游戏之光
Synchronized solves problems caused by sharing
[MySQL] database stored procedure and storage function clearance tutorial (full version)
[MySQL] log
TCP/IP协议
IoT -- 解读物联网四层架构
角色动画(Character Animation)的现状与趋势
Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures
随机推荐
【ROS】usb_ Cam camera calibration
根据csv文件某一列字符串中某个数字排序
企微服务商平台收费接口对接教程
Is it safe to open an account in Zheshang futures?
Rviz仿真时遇到机器人瞬间回到世界坐标原点的问题及可能原因
Research Report on Market Research and investment strategy of microcrystalline graphite materials in China (2022 Edition)
Char to leading 0
Chrome浏览器的crash问题
CISP-PTE实操练习讲解
win10系统中的截图,win+prtSc保存位置
Beijing invitation media
【刷题】牛客网面试必刷TOP101
Browser thread
leetcode刷题 (5.31) 字符串
sublime text中conda环境中plt.show无法弹出显示图片的问题
移位运算符
On the day of resignation, jd.com deleted the database and ran away, and the programmer was sentenced
[2022 广东省赛M] 拉格朗日插值 (多元函数极值 分治NTT)
Summary of phased use of sonic one-stop open source distributed cluster cloud real machine test platform
Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures