注意:读取表数据时,表格中的格子没有数据时会读取报错
excel文件及相关jar包:
连接:
https://pan.baidu.com/s/1BpLGxBz2dPRvq_eCxFofzA
,提取码:aczc
excel表格:(一下插入数据是从表格内随机获取插入数据)
package kf.ats.gvnsvr.client.taizhou.test;
import org.apache.commons.io.FileUtils;
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.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class TestEditExcel {
//第一行每一列的title
private static String[] title = new String[] {"部门名称","事项编码","事项名称","创建时间","状态"};
//生成文件名
private static String newfilepath = "e:/testNew.xls";
public static void main(String[] args) throws IOException{
//读取excel表数据
List<BumenEnity> listMaps = getExcelOne();
//封装需要写入excel表的数据
List<Map<String,String>> BodyMap = excelDataList(listMaps);
//写入数据
exportXlsgl(BodyMap);
* 读取excel表数据
* @return,list对象集合
public static List<BumenEnity> getExcelOne(){
List<BumenEnity> listMaps = new ArrayList<BumenEnity>();
File file = new File("D:\\2020CodeFile\\yhs.xlsx");
/IP地址
FileInputStream in;
XSSFWorkbook wb;
try {
in = new FileInputStream(file);
wb = new XSSFWorkbook(in);
Sheet sheet = wb.getSheetAt(0); //取得“测试.xlsx”中的第一个表单
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getLastRowNum();
Row row = null;
for (int i = firstRowNum+1; i <= lastRowNum; i++) {
try {
BumenEnity map = new BumenEnity();
row = sheet.getRow(i); //取得第i行 (从第二行开始取,因为第一行是表头)
map.setDepartment(row.getCell(1).getStringCellValue());
map.setName(row.getCell(2).getStringCellValue());
map.setService(row.getCell(3).getStringCellValue());
listMaps.add(map);
} catch (Exception e) {
e.printStackTrace();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return listMaps;
public static List<Map<String,String>> excelDataList(List<BumenEnity> map){
List<Map<String,String>> BodyMap = new ArrayList<Map<String, String>>();
Random r = new Random(1);
for (int i=0;i<5;i++){
int ret = r.nextInt(100);
Date date = randomDate("2020-09-01","2020-11-20");
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date) + " " +
ret + " " + map.get(ret).getDepartment() + " " + map.get(ret).getName() + " " +
map.get(ret).getService());
int max=17,min=8;
long randomNum = System.currentTimeMillis();
int ran3 = (int) (randomNum%(max-min)+min);
DecimalFormat g1=new DecimalFormat("00");
String startZeroStr = g1.format(Integer.valueOf(ran3));
Map<String,String> mapdata = new HashMap<String,String>();
mapdata.put("name1", map.get(ret).getName());
mapdata.put("name2", map.get(ret).getDepartment());
mapdata.put("name3", map.get(ret).getService());
mapdata.put("name4", new SimpleDateFormat("yyyy-MM-dd "+startZeroStr+":mm:ss").format(date));
mapdata.put("name5", "SUCCESS");
BodyMap.add(mapdata);
return BodyMap;
* 生成随机时间
* @param beginDate开始时间
* @param endDate结束时间
* @return
private static Date randomDate(String beginDate,String endDate){
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date start = format.parse(beginDate);
Date end = format.parse(endDate);
if(start.getTime() >= end.getTime()){
return null;
long date = random(start.getTime(),end.getTime());
return new Date(date);
} catch (Exception e) {
e.printStackTrace();
return null;
* 生成随机数
* @param begin
* @param end
* @return
private static long random(long begin,long end){
long rtn = begin + (long)(Math.random() * (end - begin));
if(rtn == begin || rtn == end){
return random(begin,end);
return rtn;
* 创建excel文件并插入数据
* @param BodyMap
public static void exportXlsgl(List<Map<String,String>> BodyMap){
//1.创建Excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//2.创建一个工作表
HSSFSheet sheet = workbook.createSheet("sheet2");
//3.创建第一行
HSSFRow row = sheet.createRow(0);
HSSFCell cell = null;
//4.插入第一行数据
for (int i = 0; i < title.length; i++) {
cell=row.createCell(i);
cell.setCellValue(title[i]);
//5.追加数据
int i=1;
for (Map<String, String> m : BodyMap){
HSSFRow row2=sheet.createRow(i);
HSSFCell cell2=row2.createCell(0);
cell2.setCellValue(m.get("name1"));
cell2=row2.createCell(1);
cell2.setCellValue(m.get("name2"));
cell2=row2.createCell(2);
cell2.setCellValue(m.get("name3"));
cell2=row2.createCell(3);
cell2.setCellValue(m.get("name4"));
cell2=row2.createCell(4);
cell2.setCellValue(m.get("name5"));
cell2=row2.createCell(5);
//创建一个文件,将Excel内容存盘
File file=new File(newfilepath);
try {
file.createNewFile();
FileOutputStream stream=FileUtils.openOutputStream(file);
workbook.write(stream);
stream.close();
} catch (IOException e) {
e.printStackTrace();
实体类:BumenEnity
插入表数据输出结果:
读取一个表数据根据自己的需求将数据插入到另外一个表中,复制代码下载excel及jar包即可excel文件及相关jar包:连接:https://pan.baidu.com/s/1BpLGxBz2dPRvq_eCxFofzA,提取码:aczcpackage kf.ats.gvnsvr.client.taizhou.test;import org.apache.commons.io.FileUtils;import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermod.
将要写入数据使用EasyExcel写入Excel中,可以通过excludeColumnFiledNames指定需要忽略的列,includeColumnFiledNames指定要只写入的列。本文主要介绍两个方法的使用及示例代码。
原文地址:Java EasyExcel写入Excel数据指定写入数据实体中列(忽略或包含)的方法
public static void addRowCol(){
Workbook workbook = new Workbook();
workbook.loadFromFile("D:\\office\\ExcelTest\\安全分析表模板.xlsx");
//获取表
1、Java导出动态数据为Excel文件,具体示例可以参考:https://img-blog.csdnimg.cn/1cc86ee5dffa48669e2b97283585fad2.png
2、项目使用SpringBoot,Ali3.0.5版本的easyexcel框架。
3、资源内有具体的使用说明和易碰到的问题及解决方案,有博主个人联系方式,欢迎来交流。
使用说明:
1、下载资源后请先看readme文档,README.md中有项目的介绍和具体的使用流程说明和易碰到的问题及解决方案。
2、若各位项目需求与本资源的样式相符度低,例如业务有渲染单元格颜色的,或者要求字体加粗,或者写入到多个Sheet页,或者设置列宽、行高,或者合并单元格,或者自动列宽,或者插入批注,或者读取Excel数据,又或者日期、数字或者自定义格式转换等等的需求时,可以参考本资源里面的《导出Excel教程.docx》里面给的需求思路。
1、关于读取Excel和写入Excel的注解示例可以参考:https://download.csdn.net/download/gongjin28_csdn/85324
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import o.
要使用Java创建和插入数据到Excel文件,可以使用Apache POI库。以下是一个简单的示例代码,演示如何使用POI创建新工作簿并向其添加数据:
```java
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelWriter {
public static void main(String[] args) throws Exception {
// 创建工作簿对象
Workbook workbook = new XSSFWorkbook();
// 创建工作表对象
Sheet sheet = workbook.createSheet("Sheet1");
// 创建行对象
Row row = sheet.createRow(0);
// 创建单元格对象并在行中添加数据
Cell cell = row.createCell(0);
cell.setCellValue("Hello");
cell = row.createCell(1);
cell.setCellValue("World");
// 保存工作簿到文件
FileOutputStream outputStream = new FileOutputStream("example.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
在这个例子中,我们创建了一个 `XSSFWorkbook` 实例来表示一个新的工作簿。然后,我们使用 `createSheet` 方法创建了一个名为 “Sheet1” 的工作表。接下来,我们使用 `createRow` 方法创建一个行对象,并使用 `createCell` 方法创建单元格对象。最后,我们将数据添加到单元格中并将工作簿保存到文件中。
请注意,此示例仅适用于创建和写入XLSX格式的Excel文件。如果需要创建和写入旧版的XLS格式文件,需要使用 `HSSFWorkbook` 类替换 `XSSFWorkbook`。
The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
微电子学与固体电子学-俞驰:
java-根据图片地址下载到本地
望实本心:
java 将pdf文件转成高清图片(多张合并成一张)
zhanglonglong01: