자바 내 보 내기 excel, 여러 sheet

4872 단어
excel 내 보 내기 도구 클래스
package com.tnpm.ems;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
/**
 * Created by qiusa on 2019/5/14.
 */
public class ExcelUtils {
    /**
     * @Description:   Excel
     * @param workbook
     * @param sheetNum (sheet   ,0            sheet)
     * @param sheetTitle  (sheet   )
     * @param headers    (      )
     * @param result   (     )
     * @param out  (   )
     * @throws Exception
     */
    public void exportExcel(HSSFWorkbook workbook, int sheetNum,
                            String sheetTitle, String[] headers, List> result,
                            OutputStream out) throws Exception {
        //       
        HSSFSheet sheet = workbook.createSheet();
        workbook.setSheetName(sheetNum, sheetTitle);
        //           20   
        sheet.setDefaultColumnWidth((short) 20);
        //       
        HSSFCellStyle style = workbook.createCellStyle();
        //       
        style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //       
        HSSFFont font = workbook.createFont();
        font.setColor(HSSFColor.BLACK.index);
        font.setFontHeightInPoints((short) 12);
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        //            
        style.setFont(font);

        //                  
        style.setWrapText(true);

        //        
        HSSFRow row = sheet.createRow(0);
        for (int i = 0; i < headers.length; i++) {
            HSSFCell cell = row.createCell((short) i);

            cell.setCellStyle(style);
            HSSFRichTextString text = new HSSFRichTextString(headers[i]);
            cell.setCellValue(text.toString());
        }
        //       ,     
        if (result != null) {
            int index = 1;
            for (List m : result) {
                row = sheet.createRow(index);
                int cellIndex = 0;
                for (String str : m) {
                    HSSFCell cell = row.createCell((short) cellIndex);
                    cell.setCellValue(str.toString());
                    cellIndex++;
                }
                index++;
            }
        }
    }
    
}

테스트
public static void main(String[] args) {
        try {
            //excel        
            OutputStream out = new FileOutputStream("D:\\test.xls");
            //    sheet,          
            List> data1 = new ArrayList>();
            List> data2 = new ArrayList>();
            String[] headers1 = { "ID", "  ","   " };
            String[] headers2 = { "ID", "   " };
            //  int        String  
            for (int i = 1; i < 5; i++) {
                List rowData = new ArrayList();
                rowData.add(String.valueOf(i));
                rowData.add(String.valueOf(i+20));
                rowData.add("  "+i+" ");
                data1.add(rowData);
            }
            for (int i = 1; i < 5; i++) {
                List rowData = new ArrayList();
                rowData.add(String.valueOf(i));
                rowData.add("  "+i+" ");
                data2.add(rowData);
            }

            ExcelUtils eeu = new ExcelUtils();
            HSSFWorkbook workbook = new HSSFWorkbook();
            eeu.exportExcel(workbook, 0, "  1", headers1, data1, out);
            eeu.exportExcel(workbook, 1, "  2", headers2, data2, out);
            //          ,        。
            workbook.write(out);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 
위의 호출 에서 알 수 있 듯 이:
    (1) 엑셀 이 저장 한 경로 와 이름 은 스스로 정의 할 수 있다.
    (2) 데이터 원본 은 다른 곳 에서 가 져 온 다음 에 기 존의 data 에 할당 할 수 있 습 니 다.
    (3) 각 sheet 의 열 은 다 를 수도 있 고 같 을 수도 있다.
    (4) 생 성 된 sheet 의 많 고 적 음 은 당신 에 게 달 려 있 습 니 다.
    자, 위 에는 간단 하고 실 용적 인 엑셀 내 보 내기 방법 이 있 으 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기