JAVA代码自动生成.xls和.xlsx类型的excel文件的详细过程和代码
来源:互联网 发布:mysql免费吗 编辑:程序博客网 时间:2024/06/01 07:55
java中是可以自动生成excel文件的,其实他的原理很简单,就是你首先要提供给他一个excel的模板,然后代码会读取到这个excel,然后自动为其添加内容,再将其输出重定向一下。就实现了自动生成excel文件的功能。
Java中提供了很多jar包,生成.xls类型的excel文件的jar包和生成.xlsx文件类型的jar包不同,注意区别。.
1.下面是生成.xls文件所需的具体jar包和java代码
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.poifs.filesystem.POIFSFileSystem;
// 方法参数传入的是输入路径和输出路径
public static void parsePM25(File file, File path) throws Exception,
IOException {
//SQL语句查询数据
String sql2 = "SELECT DATEGRP,dq.siteid,dq.PM10_AQI pm10_aqi, dq.PM25_AQI pm25_aqi,DQ.PM10_DAY pm10_day,DQ.PM25_DAY pm25_day "
+ "FROM DQ_GRP_API_MV dq where dq.siteid=999 and DATEGRP = trunc(sysdate-1)";
//JDBC链接数据库
Statement st2 = conn.createStatement();
ResultSet rs2 = st2.executeQuery(sql2);
//初始化方法
POIFSFileSystem ps = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook hwb = new HSSFWorkbook(ps);
//找到一个sheet页
HSSFSheet sheet = hwb.getSheetAt(0);
//初始化要填的行和列,要填写的数据
HSSFRow row = null;
HSSFCell valueCell1 = null;
HSSFCell valueCell2 = null;
HSSFCell valueCell3 = null;
HSSFCell valueCell4 = null;
HSSFCell valueCell5 = null;
String PM10_DAY = null;
String PM10_AQI = null;
String PM25_DAY = null;
String PM25_AQI = null;
//获取时间格式
DateFormat sd = new SimpleDateFormat("yyyy年M月d日");
DateFormat sd2 = new SimpleDateFormat("yyyyMMdd");
Date curDate = new Date(System.currentTimeMillis() - 1000 * 60 * 60
* 24);// 获取当前时间
String str = sd.format(curDate);
String str2 = sd2.format(curDate);
System.out.println(str);
//填写数据
row = sheet.getRow(1); //获取第一行
HSSFCell cell = row.getCell((short) 5);//获取第5列
cell.setCellValue(str);//设置数据
int c = 4;
while (rs.next()) {
row = sheet.getRow(c); //获取第c行
c++;
//站点号
valueCell1 = row.getCell((short) 1);//获取第1列
valueCell1.setCellValue(rs.getString("sitename"));//设置数据
// PM10_DAY
if (rs.getString("PM10_DAY") == null) {
PM10_DAY = "---";
} else {
PM10_DAY = rs.getString("PM10_DAY");
}
valueCell1 = row.getCell((short) 2);
valueCell1.setCellValue(PM10_DAY);
<---------------------------关于具体的填写内容就不详写了--------------------------------------->
//关闭链接
JDBCUtils.release(conn, st2, rs2);
//调用数据流方法写入,返回执行信息
String info = writeExcel(file2, hwb, "bjmemc_stat_" + str2 + ".xls");
//打印下执行的信息
System.out.println(info);
}
<---------------------------附上输出流方法--------------------------------------->
public static String writeExcel(File path, HSSFWorkbook hssfworkbook,
String filename) {
try {
BufferedOutputStream bufferedoutputstream = new BufferedOutputStream(
new FileOutputStream(new File(path, filename)));
if (hssfworkbook != null) {
hssfworkbook.write(bufferedoutputstream);
}
bufferedoutputstream.close();
} catch (Exception e) {
e.printStackTrace();
}
return filename.toString();
}
2.下面是生成.xlsx文件所需的具体jar包和java代码
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
//其实生成.xlsx的文件和生成.xls文件的方法类似,区别只在于使用的jar包不同,下面方法的注释就不详写了
public static void parseAirQualityExcel(File file, File path) throws SQLException,
FileNotFoundException, IOException, InvalidFormatException {
//SQL语句查询数据
String sql2 = "SELECT DATEGRP,dq.siteid,dq.PM10_AQI pm10_aqi, dq.PM25_AQI pm25_aqi,DQ.PM10_DAY pm10_day,DQ.PM25_DAY pm25_day "
+ "FROM DQ_GRP_API_MV dq where dq.siteid=999 and DATEGRP = trunc(sysdate-1)";
//JDBC链接数据库
Statement st2 = conn.createStatement();
ResultSet rs2 = st2.executeQuery(sql2);
//初始化方法
OPCPackage ps= OPCPackage.open(file);XSSFWorkbook hwb = new XSSFWorkbook(ps);
XSSFSheet sheet = hwb.getSheetAt(0);
XSSFRow row = null;
XSSFCell cell1 = null;
int so2 = 0;
int c = 1;
while (rs.next()) {
row = sheet.getRow(c);
c++;
// SO2
if ((Object)rs.getInt("pm25") == null) {
so2 = 0;
} else {
so2 = rs.getInt("pm25");
}
cell1 = row.getCell((short) 1);
cell1.setCellValue(so2);
}
JDBCUtils.release(conn, st, rs);
String info = writeExcel1(path, hwb, "专报用图-" + str2 + ".xlsx");
System.out.println(info);
}
<---------------------------数据流方法类型不同,这里也附上输出流方法。--------------------------------------->
public static String writeExcel1(File path, XSSFWorkbook hssfworkbook,
String filename) {
try {
BufferedOutputStream bufferedoutputstream = new BufferedOutputStream(
new FileOutputStream(new File(path, filename)));
if (hssfworkbook != null) {
hssfworkbook.write(bufferedoutputstream);
}
bufferedoutputstream.close();
} catch (Exception e) {
e.printStackTrace();
}
return filename.toString();
}
- JAVA代码自动生成.xls和.xlsx类型的excel文件的详细过程和代码
- .xls和.xlsx的区别?.xlsx Excel文件怎么转换成.xls文件
- c#读取excel的xls和xlsx文件的方法
- Java代码生成和解析xls文件
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
- java使用poi读取xls格式和xlsx格式的excel文件
- c#如何生成Excel(.xls和.xlsx)文件
- Java利用POI生成Excel(.xls和.xlsx)
- java:poi读取excel文件,分xls和xlsx
- java使用POI读取excel文件,兼容xls和xlsx
- 分享用Java将Excel的xls和xlsx文件转换成csv文件的方法, XLS2CSV, XLSX2CSV
- 大坑----java生成xls,xlsx文件的行数啊
- JAVA读取xls文件和xlsx文件
- JAVA读取xls文件和xlsx文件
- 使用poi来解析Excel的xls和xlsx。
- 使用poi来解析Excel的xls和xlsx
- 使用poi来解析Excel的xls和xlsx。
- 使用poi来解析Excel的xls和xlsx
- jquery是JavaScript的一个库,也就是说就算使用jQuery,也要遵守JavaScript的语法,为什么jQuery还有自己的语法?
- MySQL 5.7.17 绿色版 如何安装
- python2.7使用TimeDelta中total_seconds()方法的问题
- 踩过的坑
- MT7628如何控制GPIO
- JAVA代码自动生成.xls和.xlsx类型的excel文件的详细过程和代码
- HTML5头部常用的<head>总结
- springmvc 中各种数据配置
- 8大排序算法Java实现
- Android多级列表二三事
- Android 7.0 https/tls证书配置问题
- 【Android实战】----从Retrofit源码分析到Java网络编程以及HTTP权威指南想到的
- 使用 Apache Solr 实现更加灵巧的搜索,第 1 部分: 基本特性和 Solr 模式
- Handsontable