首先需下载poi java包,添加至构建路径,

写处理方法:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.File;
import java.util.*;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.awt.AWTException;


 /*************************excel处理程序-开始*******************************************/

    /**
* 获取Excel中的数据(Excel 2003)
* @param file 文件路径
* @param beginCell 开始列
* @param endCell 结束列
* @throws IOException
*/
public static List<List> getExcelValue(String file, int beginCell, int endCell)throws IOException{
InputStream is = new FileInputStream(file);
Workbook workbook = null ;
if(file.endsWith(".xls")){
workbook = new HSSFWorkbook(is);
}else if(file.endsWith(".xlsx")){
workbook = new XSSFWorkbook(is);
} List<List> excelList = new ArrayList<List>(); Sheet sheet = workbook.getSheetAt(0); //操作第一个表格,其他的sheet不管
//按行循环
for(int rownum=0;rownum<=sheet.getLastRowNum();rownum++){
Row row = sheet.getRow(rownum);//获取行 List<String> rowList = new ArrayList<String>(); //每行的数据放一个List里
//每行中按列循环
for(int cellnum=beginCell;cellnum<=endCell;cellnum++){
Cell cell = row.getCell(cellnum); //获取操作的单元格
if(cell != null){ //单元格不为空,则将单元格中数据放入list中
rowList.add(getCellValue(cell));
}else{//单元格为空,则向list中放入空字符串
rowList.add("");
}
}
excelList.add(rowList);//将一行的数据放入excelList中
}
return excelList;
}
// } /**
* 获取Excel中的数据(Excel 2003),未传递开始与结尾的列数,所以获取所有
* @param file 文件路径
* @throws IOException
*/
public static List<List> getExcelValue(String file)throws IOException{
InputStream is = new FileInputStream(file);
Workbook workbook = null ;
if(file.endsWith(".xls")){
workbook = new HSSFWorkbook(is);
}else if(file.endsWith(".xlsx")){
workbook = new XSSFWorkbook(is);
} List<List> excelList = new ArrayList<List>(); Sheet sheet = workbook.getSheetAt(0); //操作第一个表格,其他的sheet不管
//按行循环
for(int rownum=0;rownum<=sheet.getLastRowNum();rownum++){
Row row = sheet.getRow(rownum);//获取行
int beginCell = 0;
int endCell = sheet.getRow(0).getPhysicalNumberOfCells();//获取该表格中最大列数 List<String> rowList = new ArrayList<String>(); //每行的数据放一个List里
//每行中按列循环
for(int cellnum=beginCell;cellnum<=endCell;cellnum++){
Cell cell = row.getCell(cellnum); //获取操作的单元格
if(cell != null){ //单元格不为空,则将单元格中数据放入list中
rowList.add(getCellValue(cell));
}else{//单元格为空,则向list中放入空字符串
rowList.add("");
}
}
excelList.add(rowList);//将一行的数据放入excelList中
}
return excelList;
}
// } private static String getCellValue(Cell cell) {
if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
// 返回布尔类型的值
return String.valueOf(cell.getBooleanCellValue());
} else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
// 返回数值类型的值
return String.valueOf((int)cell.getNumericCellValue());
} else {
// 返回字符串类型的值
return String.valueOf(cell.getStringCellValue());
}
} /**
* 当List<List> 内容写入Excel中
* @param dataList
*/
public static void writeExcel(List<List> dataList, String filePath){
try{
FileOutputStream os = new FileOutputStream(filePath); HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0); //行
HSSFCell cell = row.createCell(0); //列 //将所有数据以行为单位的进行循环
for(int i=0; i<dataList.size(); i++){ //循环行
List rowList = dataList.get(i);
row = sheet.createRow(i); //将某行的所有数据以单元格为单位进行循环
for(int j=0; j<rowList.size(); j++){ //循环列
String cellValue = String.valueOf(rowList.get(j)); //获取某单元格内容
cell = row.createCell(j); //创建对应的单元格
cell.setCellValue(cellValue); //写入内容
}
}
workbook.write(os);
os.flush();
os.close(); }catch (Exception e) {
e.printStackTrace();
}
}
/*************************excel处理程序-结束*******************************************/

使用:

writeExcel(csyl_dataList, test_report_FilePath); //输出excel文件

java - 读取,导出 excel文件数据的更多相关文章

  1. java POI导出Excel文件数据库的数据

    在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...

  2. java 实现导出Excel文件

    java 实现导出Excel(java生成 excel 并导出文件) 经常有有一些数据需要导出成   excel  格式 ,所以就需要实现啦 开始: 1.加入jar poi-3.6-20091214. ...

  3. Java:导出Excel大批量数据的优化过程

    背景 团队目前在做一个用户数据看板(下面简称看板),基本覆盖用户的所有行为数据,并生成分析报表,用户行为由多个数据来源组成(餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业. ...

  4. Java读取批量Excel文件

    1.首先基础知识: 原文链接:https://blog.csdn.net/baidu_39298625/article/details/105842725 一 :简介 开发中经常会设计到excel的处 ...

  5. java导入导出Excel文件

    package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...

  6. java poi 导出Excel文件

    1,导包  poi-3.9-XXX.JAR 2, 创建一个实体对象 public class Student implements Serializable { /** * */ private st ...

  7. 使用poi读取Excel文件数据

    package com.haiyisoft.iecp.util; import java.io.File;import java.io.FileInputStream;import java.io.F ...

  8. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  9. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

随机推荐

  1. 7zip 自解压安装程序

    包含自解压安装器的包https://jaist.dl.sourceforge.net/project/sevenzip/7-Zip/9.20/7z920_extra.7z详细说明见7-zip帮助文档的 ...

  2. 51nod 1270 dp

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270 简单的线性dp,最近狂刷水题真的是...药丸 差值最大得话要么是峰 ...

  3. iOS-沙盒路径

    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么.documents,tmp,app,Library.(NSHomeDirectory() ...

  4. python----模块知识拓展

    1.hashlib ------configpraser-------- xml hashlib 模块导入:import hashlib 模块说明:用于将信息加密,明文变成密文 功能说明 MD5算法 ...

  5. 图解MySQL 内连接、外连接、左连接、右连接、全连接

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  6. [JS学习笔记]Event对象

    写在前面 学习和总结JS时会伴随性的生成一些dome,其中包含一些动态输出的结果和标注. 之前通过鸡贼的办法实现了在博客中执行JS,但很多时候需要一张干净的页面编写dome,所以尝试通过一些在线的JS ...

  7. Chrome 开发者控制台使用技巧

    Chrome 有内置的开发者工具.它拥有丰富的特性,比如元素(Elements).网络(Network)和安全(Security).今天,我们主要关注一下 JavaScript 控制台. 当我最初写代 ...

  8. Spring Boot打包总结

    环境配置信息 -** JDK 1.8 -** Spring Boot 1.5.3.RELEASE -** IDE: STS 3.4 Spring Boot下打包过程 基于STS创建Spring boo ...

  9. c++ wchar_t 与char 直接的转换【转】

    http://blog.163.com/tianshi_17th/blog/static/4856418920085209414977/ 实现了一下 #include "stdafx.h&q ...

  10. POJ 2954 Triangle (pick 定理)

    题目大意:给出三个点的坐标,问在这三个点坐标里面的整数坐标点有多少个(不包含边上的) 匹克定理:I = (A-E) / 2 + 1; A: 表示多边形面积 I : 表示多边形内部的点的个数 E: 表示 ...