JAVA读取、写入Excel表格(含03版)
引言
工作中可能会遇到对Excel读取和写入,如果我们自己手动写的话,会很麻烦,但是Apache中有poi工具类。poi工具类封装好了对于Excel读取和写入,我们需要用的时候,直接调用该方法就好了。
注:03和07的写法不一致。
区别如下
// HSSFWorkbook 2003的excel .xls,XSSFWorkbook导入2007的excel .xlsx
HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(new File(file)));
XSSFWorkbook workbook=new XSSFWorkbook(new FileInputStream(new File(file))));
代码实现
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.alibaba.fastjson.JSONObject;
/**
*
* Title: excelTest
* Description: excel表格读取
* 注意:引用poi 架包版本要一致
* 如:
* poi-3.13.jar
* poi-ooxml-3.13.jar
* poi-ooxml-schemas-3.13.jar
* poi-scratchpad-3.13.jar
* 这些架包版本随意
* stax-api.jar
* xmlbeans.jar
* dom4j.jar
* Version:1.0.0
* @author pancm
*/
public class excelTest {
private static final String path="D:\\file\\test.xlsx";
private static final String path1="D:\\file\\test1.xlsx";
public static void main(String[] args) throws FileNotFoundException, IOException {
readExcel(path);
writeExcel(path1);
}
/**
* 读取Excel表格内容
* @throws FileNotFoundException
* @throws IOException
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
private static void readExcel(String str) throws FileNotFoundException, IOException{
File file=new File(str);
// HSSFWorkbook 2003的excel .xls,XSSFWorkbook导入2007的excel .xlsx
// HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(new File(file)));
XSSFWorkbook workbook=new XSSFWorkbook(new FileInputStream(file));
Sheet sheet=workbook.getSheetAt(0);//读取第一个 sheet
List list= new ArrayList<>();
Row row=null;
int count=sheet.getPhysicalNumberOfRows();
//逐行处理 excel 数据
for (int i = 1; i <count; i++) {
JSONObject json=new JSONObject();
row=sheet.getRow(i);
Cell cell0 = row.getCell(0);
//设置取值为String
//整数数据要转,否则会变成浮点数
cell0.setCellType(Cell.CELL_TYPE_STRING);
Cell cell1 = row.getCell(1);
cell1.setCellType(Cell.CELL_TYPE_STRING);
json.put("Id",cell0.toString()); //编号
json.put("Name",cell1.toString()); //名称
list.add(json);
System.out.println("json:"+json);
}
workbook.close();
System.out.println("list:"+list);
}
/**
* 写入Excel表格内容
* @throws FileNotFoundException
* @throws IOException
*/
@SuppressWarnings({ "resource", "rawtypes", "unchecked" })
private static void writeExcel(String str) throws FileNotFoundException, IOException{
File file=new File(str);
// HSSFWorkbook 2003的excel .xls,XSSFWorkbook导入2007的excel .xlsx
// HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(new File(file)));
XSSFWorkbook workbook=new XSSFWorkbook(new FileInputStream(file));
List resultList =new ArrayList<>();
Sheet sheet1 = workbook.createSheet();//创建 sheet 对象
Row row = sheet1.createRow(0);//第一行,标题
row.createCell(0).setCellValue("A");
row.createCell(1).setCellValue("B");
row.createCell(2).setCellValue("C");
row.createCell(3).setCellValue("D");
row.createCell(4).setCellValue("E");
//拼接数据
for(int i=1;i<=10;i++){
JSONObject json1=new JSONObject();
json1.put("A", i);
json1.put("B", i*2);
json1.put("C", i*3);
json1.put("D", i*4);
json1.put("E", i*5);
resultList.add(json1);
}
System.out.println("resultList:"+resultList);
Row row1;
for (int i = 1, len = resultList.size(); i <=len; i++) {//循环创建数据行
//因为第一行已经设置了,所以从第二行开始
row1 = sheet1.createRow(i);
JSONObject json=(JSONObject) resultList.get(i-1);
row1.createCell(0).setCellValue(json.getString("A"));
row1.createCell(1).setCellValue(json.getString("B"));
row1.createCell(2).setCellValue(json.getString("C"));
row1.createCell(3).setCellValue(json.getString("D"));
row1.createCell(4).setCellValue(json.getString("E"));
}
FileOutputStream fos = new FileOutputStream(path1);
workbook.write(fos);//写文件
fos.close();
System.out.println("写入成功!");
}
}
示例图
读取Excel
新建一个Excel表格,设置表格内容。
关闭此Excel,运行代码,打印获取的数据。
写入Excel
创建一个新的Excel。
关闭此Excel,运行代码
再次打开此Excel
JAVA读取、写入Excel表格(含03版)的更多相关文章
- JXL读取写入excel表格数据
问题描述: 使用java的jxl包创建.写入excel表格数据 问题解决: (1)说明 (2)写入execel数据 注: 以上是写入数据需要调用的函数接口 注: 具体接口调用过程,如上所示 (3)读取 ...
- Java读取word中表格
因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...
- java读取大容量excel之二(空格、空值问题)
最近在项目中发现,对于Excel2007(底层根本是xml) ,使用<java读取大容量excel之一>中的方式读取,若待读取的excel2007文件中某一列是空值,(注意,所谓的空值是什 ...
- python数据写入Excel表格
from openpyxl import Workbook def main(): sheet_name = "表名1" row_count = 6 # 行数 info_resul ...
- java后台读取/解析 excel表格
需求描述 前台需要上传excel表格,提交到后台,后台解析并返回给前台,展示在前台页面上! 前台部分代码与界面 <th style="padding: 7px 1px;width:15 ...
- Python读取Json字典写入Excel表格的方法
需求: 因需要将一json文件中大量的信息填入一固定格式的Excel表格,单纯的复制粘贴肯定也能完成,但是想偷懒一下,于是借助Python解决问题. 环境: Windows7 +Python2.7 + ...
- 《程序实现》从xml、txt文件里读取数据写入excel表格
直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java ...
- POI读取/写入Excel文件
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- R 脚本读取汇总 Excel 表格数据
主要用到了 xlsx 和 rJava 包,打开 Excel 文件,读取各表格数据,再写入到汇总表. 下图为处理前的原始数据表格: 下图为处理后的数据: 代码实现 安装&加载包的函数实现.ins ...
随机推荐
- JSON.stringify实战用法
1.首先定义一个数组 var teamPlanMinList = new Array(); 2. 定义一个json对象 var json = { "plname":plname, ...
- 最新数据库排行,Oracle略显疲惫
9月份TOPDB Top Database Index排行榜出炉,TOPDB Top Database Index是根据数据库在谷歌上的搜索频率分析得出的,数据库被搜索的频率越大,表示数 9月份的TO ...
- HDU 6047 Maximum Sequence
Maximum Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- XML之外部DTD和内部DTD
DTD(Document Type Definition):文档类型定义,可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构.DTD分为内部DTD和外部DTD,所谓内部DTD是指该DT ...
- AngularJS学习篇(十一)
AngularJS 表格 ng-repeat 指令可以完美的显示表格. <!DOCTYPE html> <html> <head> <meta charset ...
- iOS字符串修改及运用
//创建字符串 直接赋值 NSString *lytTest = @"A common string"; 1.获取字符串的长度 NSLog(@"%d",lytT ...
- T-SQL 删除重复数据SQL
WITH cte AS ( SELECT roleid,permissionid, row_number() OVER(PARTITION BY roleid,permissionid ...
- 14.javaweb AJAX技术详解
一.简介 1, ajax:在不重新加载网页的前提下,与服务器交换数据并更新部分网页的技巧,但其本身并不是一种新技术 2, 核心:XMLHttpRequest对象.AJAX技术主要是通过此对象完成的 ...
- 【5】namenode启动过程
1.格式化空间(第一次启动的操作): 命令:bin/hadoop -format //用于格式化HDFS,如果不是首次格式化,需要删除下面配置的tmp目录后再进行core-site.xml的配置: / ...
- [转载] OAuth2.0认证和授权原理
转载自http://www.tuicool.com/articles/qqeuE3 什么是OAuth授权? 一.什么是OAuth协议 OAuth(开放授权)是一个开放标准,允许第三方网站在用户授权的前 ...