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

Posted yufeng218

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI 操作 excel表格 (简单整理)相关的知识,希望对你有一定的参考价值。

 

简单的整理:

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#FillsAndFrills

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

以上是关于POI 操作 excel表格 (简单整理)的主要内容,如果未能解决你的问题,请参考以下文章

POI操作excel表格代码

雷林鹏分享:Apache POI电子表格/Spreadsheet

雷林鹏分享:Apache POI电子表格/Spreadsheet

java用poi导出word文档,我要导出一个表格,表格的单元格中还要有一个表格,请问怎么实现

java操作poi的excel表格的线条怎么变为黑色

java poi合并单元表格(求帮助啊)