当前位置:网站首页>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 .");
}

原网站

版权声明
本文为[renkai721]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060831002246.html