Poi对excel的基本操作

1.创建简单excel

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        Sheet s1=wb.createSheet("第一个sheet页");//创建Sheet页
        Row row=s1.createRow(0);//创建数据行
        Cell cell=row.createCell(0);//创建单元格
        cell.setCellValue(1);

        row.createCell(1).setCellValue(1.2);//单元格可写入不同格式的数据
        row.createCell(2).setCellValue("啦啦");
        row.createCell(3).setCellValue(false);

        FileOutputStream file=new FileOutputStream("e://poi_createCell.xls");
        wb.write(file);
        file.close();
        wb.close();

    }

2.创建指定日期格式

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        Sheet sheet=wb.createSheet("diyigeSheet页");
        Row row=sheet.createRow(0);
        Cell cell=row.createCell(0);
        cell.setCellValue(new Date());//默认日期类型 42796.89489

        CreationHelper creationHelper=wb.getCreationHelper();
        CellStyle cellStyle=wb.createCellStyle();
        cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("yy-MM-dd:hh ss"));

        cell=row.createCell(1);//创建指定日期类型数据 17-03-02:21 39
        cell.setCellValue(new Date());
        cell.setCellStyle(cellStyle);

        cell=row.createCell(2);//创建指定日期类型数据(第二种方式) 17-03-02:21 39
        cell.setCellValue(Calendar.getInstance());
        cell.setCellStyle(cellStyle);

        FileOutputStream fs=new FileOutputStream("e://poi_createData.xls");
        wb.write(fs);
        fs.close();
        wb.close();
    }

3.读取excel内容,以文本格式展示

    public static void main(String[] args) throws Exception {
        InputStream is=new FileInputStream("e:\\poi_read.xls");
        POIFSFileSystem fs=new POIFSFileSystem(is);
        HSSFWorkbook wb=new HSSFWorkbook(fs);

        @SuppressWarnings("resource")
        ExcelExtractor excelExtractor=new ExcelExtractor(wb);
        excelExtractor.setIncludeSheetNames(false);//控制是否读取sheet页名字
        System.out.println(excelExtractor.getText());
    }

4.设置excel中单元格内容样式

    @SuppressWarnings("deprecation")
    public static void main(String[] args) throws IOException {
        Workbook wb=new HSSFWorkbook();
        Sheet s1=wb.createSheet("第一个sheet页");
        Row row=s1.createRow(0);
        row.setHeightInPoints(30);

        createCell(wb, row, (short)0, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM);//内容底部居中
        createCell(wb,row,(short)1,HSSFCellStyle.ALIGN_FILL,HSSFCellStyle.VERTICAL_CENTER);//内容靠左垂直居中
        createCell(wb, row, (short)2, HSSFCellStyle.ALIGN_LEFT, HSSFCellStyle.VERTICAL_TOP);//内容左上
        createCell(wb,row,(short)3,HSSFCellStyle.ALIGN_RIGHT,HSSFCellStyle.VERTICAL_TOP);//内容右上

        FileOutputStream fileOut=new FileOutputStream("e:\\demo.xls");
        wb.write(fileOut);
        fileOut.close();
        wb.close();
    }

    //设置单元格样式
    private static void createCell(Workbook wb,Row row,short column,short halign,short valign){
        Cell cell=row.createCell(column);//创建单元格
        cell.setCellValue(new HSSFRichTextString("Align It"));//设置值
        CellStyle cellStyle=wb.createCellStyle();//创建单元格样式
        cellStyle.setAlignment(halign);//设置单元格水平方向对齐方式
        cellStyle.setVerticalAlignment(valign);//设置单元格垂直方向对齐方式
        cell.setCellStyle(cellStyle);//设置单元格样式
    }

5.设置excel中单元格样式

    @SuppressWarnings("deprecation")
    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        Sheet sheet=wb.createSheet("sheet1");
        Row row=sheet.createRow(1);
        Cell cell=row.createCell(1);
        cell.setCellValue(4);

        CellStyle cellStyle=wb.createCellStyle();
        cellStyle.setBorderBottom(CellStyle.BORDER_THIN);//底部边框
        cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());//底部边框颜色

        cellStyle.setBorderLeft(CellStyle.BORDER_THIN);//左边边框
        cellStyle.setLeftBorderColor(IndexedColors.GREEN.getIndex());//左边边框颜色

        cellStyle.setBorderRight(CellStyle.BORDER_THIN);//右边边框
        cellStyle.setRightBorderColor(IndexedColors.RED.getIndex());//右边边框颜色

        cellStyle.setBorderTop(CellStyle.BORDER_THIN);//上边边框
        cellStyle.setTopBorderColor(IndexedColors.BLUE.getIndex());//上边边框颜色

        cell.setCellStyle(cellStyle);

        FileOutputStream fileOut=new FileOutputStream("e:\\createExcelDemo08.xls");
        wb.write(fileOut);
        fileOut.close();
        wb.close();
    }

6.设置excel中单元格前景色和背景色

    public static void main(String[] args) throws Exception {
        HSSFWorkbook wb=new HSSFWorkbook();
        Sheet sheet=wb.createSheet("第一个sheet");
        Row row=sheet.createRow(1);

        Cell cell=row.createCell(1);
        cell.setCellValue("sjdsk");
        CellStyle cellStyle=wb.createCellStyle();
        cellStyle.setFillBackgroundColor(IndexedColors.GREEN.getIndex());//设置背景色
        cellStyle.setFillPattern(CellStyle.BIG_SPOTS);
        cell.setCellStyle(cellStyle);

        Cell cell2=row.createCell(2);
        cell2.setCellValue("sjdsk");
        CellStyle cellStyle2=wb.createCellStyle();
        cellStyle2.setFillForegroundColor(IndexedColors.RED.getIndex());//设置前景色
        cellStyle2.setFillPattern(CellStyle.SOLID_FOREGROUND);
        cell2.setCellStyle(cellStyle2);

        FileOutputStream fileOut=new FileOutputStream("e://createDemo10a.xls");
        wb.write(fileOut);
        fileOut.close();
        wb.close();
    }

7.设置excel中合并单元格

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();//定义一个新的工作簿
        Sheet sheet=wb.createSheet("第一个sheet页");
        Row row=sheet.createRow(1);

        Cell cell=row.createCell(1);
        cell.setCellValue("单元格合并测试");

        sheet.addMergedRegion(new CellRangeAddress(
            1,//起始行
            2,//结束行
            1,//起始列
            2//结束列
            ));

        FileOutputStream file=new FileOutputStream("e:\\createExcelDemo11a.xls");
        wb.write(file);
        file.close();
        wb.close();
    }

8.设置excel文字样式

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        Sheet sheet=wb.createSheet("第一个sheet页啦");
        Row row=sheet.createRow(1);

        //创建一个字体处理类
        Font font=wb.createFont();
        font.setFontHeightInPoints((short)24);//设置字体大小
        font.setItalic(true);//设置斜体
        font.setStrikeout(true);//设置文字是否划线

        CellStyle style=wb.createCellStyle();
        style.setFont(font);

        Cell cell=row.createCell(1);
        cell.setCellValue("there are build a font");
        cell.setCellStyle(style);

        FileOutputStream file=new FileOutputStream("e:\\createExcelDemo12.xls");
        wb.write(file);
        file.close();
        wb.close();
    }

9.设置添加数据到已有的单元格

    public static void main(String[] args) throws Exception {
        InputStream input=new FileInputStream("e:\\createExcelDemo12.xls");
        POIFSFileSystem fs=new POIFSFileSystem(input);
        Workbook wb=new HSSFWorkbook(fs);
        Sheet sheet=wb.getSheetAt(0);
        Row row=sheet.getRow(1);
        Cell cell=row.getCell(1);
        if(cell==null){
            cell=row.createCell(3);
        }
        cell.setCellType(Cell.CELL_TYPE_STRING);
        cell.setCellValue("测试POI添加数据到已有");

        FileOutputStream fos=new FileOutputStream("e:\\createExcelDemo12.xls");
        wb.write(fos);
        fos.close();
        wb.close();
    }

10.设置excel单元格中可换行

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        Sheet sheet=wb.createSheet("第一个sheet页");
        Row row=sheet.createRow(0);
        Cell cell=row.createCell(0);
        cell.setCellValue("换个行啦\n 换了吗???");

        CellStyle cs=wb.createCellStyle();
        //设置可以换行
        cs.setWrapText(true);
        cell.setCellStyle(cs);
        //调整下行的高度
        row.setHeightInPoints(2*sheet.getDefaultRowHeightInPoints());
        //调整单元格宽度
        sheet.autoSizeColumn(2);

        FileOutputStream fileOut=new FileOutputStream("e:\\createExceDemo14.xls");
        wb.write(fileOut);
        fileOut.close();
        wb.close();
    }

11.设置excel中单元格数据精度

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        FileOutputStream file=new FileOutputStream("e:\\createExcelPOI_DEMO15.xls");
        Sheet sheet=wb.createSheet();
        CellStyle style;
        DataFormat format=wb.createDataFormat();
        Row row;
        Cell cell;
        short rowNum=0;
        short cellNum=0;

        row=sheet.createRow(rowNum++);
        cell=row.createCell(cellNum++);
        cell.setCellValue(12.908);

        style=wb.createCellStyle();
        style.setDataFormat(format.getFormat("0.0"));
        cell.setCellStyle(style);//输出12.9

        row=sheet.createRow(rowNum++);
        cell=row.createCell(cellNum);
        cell.setCellValue(111111111111111.90899);

        style=wb.createCellStyle();
        style.setDataFormat(format.getFormat("#,##0,000"));
        cell.setCellStyle(style);//输出111,111,111,111,112

        wb.write(file);
        file.close();
        wb.close();
    }
时间: 2024-10-13 11:34:58

Poi对excel的基本操作的相关文章

Java使用POI对Excel进行基本操作(4)-Excel中绘制图片

1.在Excel中绘制图片 public static void main(String[] args) throws Exception { // 定义一个工作簿 Workbook workbook = new XSSFWorkbook(); // 创建一个sheet页 Sheet sheet = workbook.createSheet("第一个sheet页"); FileInputStream fis = new FileInputStream("E:\\桌面壁纸\\y

使用Apache POI导出Excel小结--导出XLS格式文档

使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI导出Excel小结--导出XLSX格式文档 使用Apache POI导出Excel--大数量导出 导出XLS格式文档 做企业应用项目难免会有数据导出到Excel的需求,最近在使用其,并对导出Excel封装成工具类开放出来供大家参考.关于Apache POI Excel基本的概念与操作我在这里就不啰嗦

POI操作Excel

Excel简介 一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作表sheet,而一个工作表中包含多个单元格Cell,这些单元格都是由列(Column)行(Row)组成,列用大写英文字母表示,从A开始到Z共26列,然后再从AA到AZ又26列,再从BA到BZ再26列以此类推.行则使用数字表示,例如:A3 表示第三行第一列,E5表示第五行第五列. POI工具包 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 9

POI导出EXCEL经典实现

在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI.这里我们用Apache POI!我们先去Apach

Poi解析Excel

Poi解析Excel Poi包里有4个主要的类,包括: Workbook------工作表,通过WorkbookFactory的create(FileInputStream fis)方法获取, Sheet------------表格,Workbook实例的getSheetAt(int num)方法获取, Row--------------行,Sheet实例的getRow(int num)方法获取, Cell--------------单元格,Row实例的getCell(int num)方法获取,

java使用POI操作excel文件,实现批量导出,和导入

一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel. POI全称 Poor Obfuscation Implementation,直译为"可怜的模糊实现",利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:htt

java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </depen

JAVA的POI操作Excel

1.1Excel简介 一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作表sheet,而一个工作表中包含多个单元格Cell,这些单元格都是由列(Column)行(Row)组成,列用大写英文字母表示,从A开始到Z共26列,然后再从AA到AZ又26列,再从BA到BZ再26列以此类推.行则使用数字表示,例如:A3 表示第三行第一列,E5表示第五行第五列. 1.2 POI工具包 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Exce

POI操作EXCEL(二)

原文转自:http://www.tqcto.com/article/code/295025.html java当初把核心处理设成Unicode,带来的好处是另代码适应了多语言环境.然而由于老外的英语只有26个字母,有些情况下,一些程序员用8 位的byte处理,一不小心就去掉了CJK的高位.或者是由于习惯在程序中采用硬编码,还有多种原因,使得许多java应用在CJK的处理上很烦恼.还好 在POI HSSF中考虑到这个问题,可以设置encoding为双字节. POI可以到www.apache.org