码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-07-14 20:06:35      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:读取   src   导入   lips   应用   apache   dma   cell   user   

一、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相关操作

标签:读取   src   导入   lips   应用   apache   dma   cell   user   

原文地址:https://www.cnblogs.com/guobin-/p/11185054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!