POI 操做 excel表格 (简单整理)

 

简单的整理:html

import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.streaming.SXSSFCell; import org.apache.poi.xssf.streaming.SXSSFRow; import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * Created by Administrator on 2019/6/12. */
public class SXSSFWorkbook_Main { public static void main(String[] args) { long startTime = System.currentTimeMillis(); String filePath = "E:\\111.xlsx"; SXSSFWorkbook sxssfWorkbook = null; BufferedOutputStream outputStream = null; try { //这样表示SXSSFWorkbook只会保留100条数据在内存中,其它的数据都会写到磁盘里,这样的话占用的内存就会不多
            sxssfWorkbook = new SXSSFWorkbook(getXSSFWorkbook(filePath),100); //获取第一个Sheet页
            SXSSFSheet sheet = sxssfWorkbook.getSheetAt(0); //合并行以后建立第一行
            sheet.addMergedRegion(new CellRangeAddress(0,0,0,3)); SXSSFRow row = sheet.createRow(0); //添加第一行的单元格
            SXSSFCell cell = row.createCell(0); CellStyle cellStyle = getHeadStyle(sxssfWorkbook); cell.setCellStyle(cellStyle); row.createCell(1).setCellStyle(cellStyle); row.createCell(2).setCellStyle(cellStyle); row.createCell(3).setCellStyle(cellStyle);   //合并单元格以后要加边框, 因此都要加上
            cell.setCellValue("项目工做清单"); //合并单元格以后设置值 //建立第2行
            SXSSFRow row1 = sheet.createRow(1); CellStyle style = getHeadStyle(sxssfWorkbook); style.setFillForegroundColor(IndexedColors.SKY_BLUE.getIndex()); row1.createCell(0).setCellStyle(style); outputStream = new BufferedOutputStream(new FileOutputStream(filePath)); sxssfWorkbook.write(outputStream); outputStream.flush(); sxssfWorkbook.dispose();// 释放workbook所占用的全部windows资源
        } catch (IOException e) { e.printStackTrace(); }finally { if(outputStream!=null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } long endTime = System.currentTimeMillis(); System.out.println(endTime-startTime); } private static CellStyle getHeadStyle(SXSSFWorkbook sxssfWorkbook) { CellStyle cellStyle = sxssfWorkbook.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); //设置单元格的水平居中 //上下左右的边框
 cellStyle.setBorderTop(BorderStyle.THIN); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); //设置单元格背景填充颜色
 cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); return cellStyle; } public static XSSFWorkbook getXSSFWorkbook(String filePath) { XSSFWorkbook workbook =  null; BufferedOutputStream outputStream = null; try { File fileXlsxPath = new File(filePath); outputStream = new BufferedOutputStream(new FileOutputStream(fileXlsxPath)); workbook = new XSSFWorkbook(); workbook.createSheet("测试Sheet"); workbook.write(outputStream); } catch (Exception e) { e.printStackTrace(); }finally { if(outputStream!=null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return workbook; } }

 

官网向导:https://poi.apache.org/components/spreadsheet/quick-guide.html#FillsAndFrillsjava

官网API:http://poi.apache.org/apidocs/dev/org/apache/poi/xssf/streaming/SXSSFWorkbook.htmlapache