Java Web之POI操作Excel2016模板

简介: 由于要批量生成Excel,并且模板已经给定。所以尝试用POI来操作一下。由于自己用的Office版本大于2007,所以在操作的时候遇到各种坑,特此记录一下~~~注意点1、由于POI对于Office2003和2007之后的版本对应的jar包不一样,操作的类也不一样,所以在操作之前一定要准确找到不同版本的Excel对应的jar包。

由于要批量生成Excel,并且模板已经给定。所以尝试用POI来操作一下。由于自己用的Office版本大于2007,所以在操作的时候遇到各种坑,特此记录一下~~~

注意点

1、由于POI对于Office2003和2007之后的版本对应的jar包不一样,操作的类也不一样,所以在操作之前一定要准确找到不同版本的Excel对应的jar包。
2、编译时不报错不代表运行不报错,很多操作都是POI在操作Excel时出现问题的,所以除了添加代码中需要Import类所在的jar包之外,必须要加入额外的jar包。

操作2007以上需要的jar包

img_da50accf4530982ca3dea1d8640e5740.jpe
必须的jar包.jpg

这些jar文件都不需要自己单独下载,只要去Apache下载 poi-bin-3.16-20170419.zip 就有了全部的资料。

img_b8d91f838c3dfd785674f4d3acd24eb0.png
对应的jar包.png

示例代码

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class POIExcel {

    public static void main(String[] args) throws IOException, InvalidFormatException {

        // 获取Excel模板文件
        File file = new File("D:\\座位分布图模板.xlsx");
        // 读取Excel模板
        XSSFWorkbook wb = new XSSFWorkbook(file);
        // 读取了模板内sheet的内容
        XSSFSheet sheet = wb.getSheetAt(0);
        // 在相应的单元格进行(读取)赋值 行列分别从0开始
        XSSFCell cell = sheet.getRow(14).getCell(8);
        cell.setCellValue("张三");
        // 修改模板内容导出新模板
        FileOutputStream out = new FileOutputStream("D:/座位分布图.xlsx");
        // 关闭相应的流
        wb.write(out);
        out.close();
        wb.close();
    }
}
目录
相关文章
|
3天前
|
Java
java导出复杂excel
java导出复杂excel
|
3天前
|
Java Android开发
java利用xml-rpc协议操作wordpress博客
java利用xml-rpc协议操作wordpress博客
|
11天前
|
SQL Java
20:基于EL与JSTL的产品管理页-Java Web
20:基于EL与JSTL的产品管理页-Java Web
21 5
|
1天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
15 4
|
2天前
|
Java
java的excel列行合并模版
java的excel列行合并模版
|
3天前
|
Java API
Java操作elasticsearch
Java操作elasticsearch
7 0
|
3天前
|
NoSQL Java Redis
在Java中操作Redis
在Java中操作Redis
7 0
|
3天前
|
SQL Java 关系型数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库
|
3天前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
5天前
|
前端开发 JavaScript Java
Java与Web开发的结合:JSP与Servlet
Java与Web开发的结合:JSP与Servlet
8 0