POI开发:Java中的Excel相关操作

Posted guobin-

tags:

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

一、Apache POI
  1、简介:
    Apache POI支持大多数中小规模的应用程序开发,提供API给Java程序对Microsoft Office格式档案读和写的功能,呈现和文本提取是它的主要特点。
  2、结构: 
    HSSF:
      提供读写Microsoft Excel XLS格式档案的功能。
    XSSF:
      提供读写Microsoft Excel OOXML XLSX格式档案的功能。
    HWPF:
      提供读写Microsoft Word DOC格式档案的功能。
    HSLF:
      提供读写Microsoft PowerPoint PPT格式档案的功能。
    HDGF:
      提供读Microsoft Visio格式档案的功能。
    HPBF:
      提供读Microsoft Publisher格式档案的功能。
    HSMF:
      提供读Microsoft Outlook格式档案的功能。
二、环境配置
  1、java环境搭建
    (1)、安装:
      下载java并进行安装(详细步骤略)
      技术图片
    (2)、环境变量配置:
      控制面板-》系统和安全-》系统-》高级系统设置-》环境变量:

      配置变量如下:

      JAVA_HOME:
        jdk存放路径。
        技术图片

      CLASSPATH:

        技术图片

      PATH:

        向后添加一行:

        技术图片

    (3)、配置完成

  2、在eclipse中导入POI包:

    (1)、下载POI:

      POI下载地址:http://poi.apache.org/download.html

      文件目录结构:

      技术图片

    (2)、导入POI:

      将所需jar包放入lib中:

      Build Path-》Configure Build Path...

      技术图片

      技术图片

三、示例代码:

  1、创建新的工作簿:

package com.gb.test;
import java.io.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class create

   public static void main(String[] args) throws Exception 
   
      //新建工作簿
      XSSFWorkbook newExcel = new XSSFWorkbook(); 
//新建流 FileOutputStream out = new FileOutputStream(new File("newExcel.xlsx"));//写入 newExcel.write(out); out.close(); System.out.println("创建成功");

  运行截图:

  技术图片

  技术图片

  此时新建的工作簿是空的,无法打开,需要新建电子表。

  2、新建电子表

package com.gb.test;
import java.io.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class create

   public static void main(String[] args) throws Exception 
   
      //新建工作簿
      XSSFWorkbook newExcel = new XSSFWorkbook(); 
      //新建流
      FileOutputStream out = new FileOutputStream(new File("newExcel.xlsx"));
//新建电子表 Sheet sheet = newExcel.createSheet("sheet1");
//写入 newExcel.write(out); out.close(); System.out.println("电子表创建成功");

  运行截图:

  技术图片

  技术图片

  3、新建行

package com.gb.test;
import java.io.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class create

   public static void main(String[] args) throws Exception 
   
      //新建工作簿
      XSSFWorkbook newExcel = new XSSFWorkbook(); 
      //新建流
      FileOutputStream out = new FileOutputStream(new File("newExcel.xlsx"));
      //新建电子表
      Sheet sheet = newExcel.createSheet("sheet1");
//新建行 Row row = sheet.createRow(0); //第1个单元格赋值为"test" row.createCell(0).setCellValue("test");
//写入 newExcel.write(out); out.close(); System.out.println("数据添加成功");

  运行截图:

  技术图片

  技术图片

  创建单元格:

Cell cell = row.createCell(0);

  4、文件内容读取

package com.gb.test;
import java.io.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class read

   public static void main(String[] args) throws Exception 
   
      //新建流
      FileInputStream in = new FileInputStream(new File("newExcel.xlsx"));
      //工作簿
      XSSFWorkbook newExcel = new XSSFWorkbook(in); 
      //新建电子表
      Sheet sheet = newExcel.getSheetAt(0);
      //新建行
      Row row = sheet.getRow(0);
      String test=row.getCell(0).toString();
      in.close();
      System.out.println("数据读取成功");
      System.out.println(test);
   

  运行截图:

  技术图片

  5、修改单元格样式

package com.gb.test;
import java.io.*;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
public class style

   public static void main(String[] args) throws Exception 
   
     //新建流
      FileInputStream in = new FileInputStream(new File("newExcel.xlsx"));
      //工作簿
      XSSFWorkbook newExcel = new XSSFWorkbook(in); 
      //获取第一个电子表
      Sheet sheet = newExcel.getSheetAt(0);
      //获取第一行
      Row row = sheet.getRow(0);
      //获取第一个单元格
      Cell cell=row.getCell(0);
//新建样式 XSSFFont font=newExcel.createFont(); //设置字体 font.setFontName("宋体"); //设置字体大小 font.setFontHeightInPoints((short) 16); //粗体显示 //设置单元格样式 XSSFCellStyle style = newExcel.createCellStyle(); style.setFont(font); cell.setCellStyle(style);
//新建流 FileOutputStream out = new FileOutputStream(new File("newExcel.xlsx")); //写入 newExcel.write(out); out.close(); System.out.println("样式设置成功");

  运行截图:

  技术图片

  技术图片

  文字方向:

style.setRotation((short) 90);

  技术图片

  从左向右为x轴,逆时针旋转的度数则为文字旋转度数。

四、可能出现的错误:

  1、java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap这一类的错误。

    技术图片

  错误原因:

    缺乏需要的jar包,必要的jar没有导全。

以上是关于POI开发:Java中的Excel相关操作的主要内容,如果未能解决你的问题,请参考以下文章

Java使用 POI 操作Excel

Java读取Hbase数据,使用POI操作Excel模板,并定时发送带有Excel附件的邮件

POI操作Execl

java操作office和pdf文件java读取word,excel和pdf文档内容

java--Excel操作工具——POI

POI之Excel操作