java生成excel格式xlsx

1,引入jar


    ojdbc7.jar
    commons-collections4-4.4.jar
    poi-3.17.jar
    poi-ooxml-3.17.jar
    poi-ooxml-schemas-3.17.jar
    xmlbeans-3.1.0.jar

2,生成 xlsx格式的excel


    package main.utils;

    import java.util.List;

    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    public class ExcelUtils {
        
        /**
         * getWorkBook
         * @param titleList
         * @param contentlist
         * @param sheetName
         * @return xwk
         */
        public XSSFWorkbook getWorkBook(List<String> titleList, List<List<String>> contentlist, String sheetName) {
            XSSFWorkbook xwk = new XSSFWorkbook();
            XSSFSheet xssfSheet = xwk.createSheet(sheetName);
            int j = 0;
            createHeader(xssfSheet, titleList, j);
            int size = contentlist.size();
            for (j = 0; j < size; j++) {
                List<String> oneRow = contentlist.get(j);
                createContent(xssfSheet, oneRow, j);
                oneRow = null;
            }
            return xwk;
        }
        
        /**
         * createHeader
         * @param xssfSheet
         * @param titleList
         */
        private void createHeader(XSSFSheet xssfSheet, List<String> titleList, int j) {
            XSSFRow rowTitle = xssfSheet.createRow(j);
            for (int cellTitle =0; cellTitle < titleList.size(); cellTitle++) {
                Cell cellIndex = rowTitle.createCell(cellTitle);
                cellIndex.setCellValue(titleList.get(cellTitle));
            }
        }
        
        /**
         * createHeader
         * @param xssfSheet
         * @param oneRow
         * @param j
         */
        private void createContent(XSSFSheet xssfSheet, List<String> oneRow, int j) {
            XSSFRow rowContent = xssfSheet.createRow(j + 1);
            for (int cellContent = 0 ; cellContent < oneRow.size(); cellContent++) {
                Cell cellIndex = rowContent.createCell(cellContent);
                cellIndex.setCellValue(oneRow.get(cellContent));
            }
        }

    }

3,測試


package main.java;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import main.utils.ExcelUtils;

public class TestExcelUtils {

    public static void main(String[] args) throws IOException  {
        List<String> titleList = new  ArrayList<String>();
        titleList.add("NO");
        titleList.add("ID");
        titleList.add("Name");
        titleList.add("Age");
        List<String> content = null;
        List<List<String>> contentsList = new  ArrayList<List<String>>();
        content = new ArrayList<String>();
        content.add("1");
        content.add("180001");
        content.add("Jame");
        content.add("18");
        contentsList.add(content);
        content = new ArrayList<String>();
        content.add("1");
        content.add("180002");
        content.add("Lucky");
        content.add("18");
        contentsList.add(content);
        
        XSSFWorkbook workBook = null;
        FileOutputStream output = null;
        String sheetName = "student";
        String fileName = "D:/export/student.xlsx";
        
        if (contentsList.size() > 0) {
            try {
                ExcelUtils eu = new ExcelUtils();
                workBook = eu.getWorkBook(titleList, contentsList, sheetName);
                output =  new FileOutputStream(fileName);
                workBook.write(output);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                if(output != null){
                    output.flush();
                    output.close();
                }
                if (workBook != null) {
                    workBook.close();
                }
            }
        }       

    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章