`
- 浏览:
39292 次
- 性别:
- 来自:
北京
-
package com.unisys;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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.hssf.util.HSSFColor;
import org.apache.poi.hssf.util.Region;
public class Excels {
/**
* 到处Excel文件的Action
* @return
* @throws Exception
* @throws Exception
* @throws Exception
*/
public static void main(String[] args) throws Exception {
List userList = findDate();
// 调用导出方法
try {
export(userList);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 导出操作
* @param col 所要导出对象集合
*/
private static void export(List<String[]> col) throws Exception {
FileOutputStream out = new FileOutputStream("d://"+"导出excel数据"+System.currentTimeMillis() + ".xls");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(getExcelInputStream(col));
bos = new BufferedOutputStream(out);
byte[] buff = new byte[4096];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (Exception e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
private static InputStream getExcelInputStream(List col) throws Exception, NoSuchMethodException, IllegalAccessException {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet=null;
HSSFCellStyle titleStyle=null;
Short count = 2;
int flag=0;
int tiao=700;
//判断几个sheet表
if(col.size()%tiao==0){
flag=col.size()/tiao;
}else{
flag=col.size()/tiao+1;
}
int j=1;
//控制表的张数
for (int i = 0; i < flag; i++) {
sheet = wb.createSheet("sheet"+(i+1));
titleStyle = wb.createCellStyle();
titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font = wb.createFont();
font.setColor(HSSFColor.BLACK.index);
font.setFontHeightInPoints((short);
font.setItalic(false);
font.setStrikeout(false);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
titleStyle.setFont(font);
//中间对齐的格式
HSSFCellStyle centerStyle = wb.createCellStyle();
centerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
centerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//右边对齐的格式
HSSFCellStyle rightStyle = wb.createCellStyle();
rightStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
rightStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//为sheet生成标题Row的所有类容
processExcelHeader(sheet, titleStyle);
//处理每个列的宽度
processCellWidth(sheet);
//控制每张表的条数
for (;j < col.size()+1; j++) {
if(j%tiao==0){
processElectricitybillBasestationToExcel((String[])col.get(j-1), count, sheet, centerStyle, rightStyle);
count = (short) (count + 1);
count=2;
break;
}
processElectricitybillBasestationToExcel((String[])col.get(j-1), count, sheet, centerStyle, rightStyle);
count = (short) (count + 1);
}
j++;
}
count = (short) (count + 2);
/* for (Iterator ite = col.iterator(); ite.hasNext();) {
//将信息写入Excel中
processElectricitybillBasestationToExcel((StuModel) ite.next(), count, sheet, centerStyle, rightStyle);
count = (short) (count + 1);
}*/
//合计
HSSFRow row = sheet.createRow(count);
//第一行的单元格
HSSFCell cell = null;
cell = row.createCell((short) 0);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("数据总计:"+col.size());
cell.setCellStyle(titleStyle);
cell = row.createCell((short) 1);
sheet.addMergedRegion(new Region(count, (short) 0, count, (short) 7));
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
return is;
}
/**
* 处理Excel的标题栏
* @param sheet
* @param titleStyle
*/
private static void processExcelHeader(HSSFSheet sheet, HSSFCellStyle titleStyle) {
//行号
//第一行
HSSFRow row = sheet.createRow(0);
//第二行
HSSFRow sRow = sheet.createRow(1);
//第一行的单元格
HSSFCell cell = null;
//第二行的单元格
HSSFCell sCell = null;
//序号
cell = row.createCell((short) 0);
cell.setCellStyle(titleStyle);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(titleStyle);
cell.setCellValue("序号");
sCell = sRow.createCell((short) 0);
sheet.addMergedRegion(new Region(0, (short) 0, 1, (short) 0));
//clcustid
cell = row.createCell((short) 1);
cell.setCellStyle(titleStyle);
cell.setCellValue("CLCUSTID");
sCell = sRow.createCell((short) 1);
sheet.addMergedRegion(new Region(0, (short) 1, 1, (short) 1));
cell.setCellStyle(titleStyle);
//csrname
cell = row.createCell((short) 2);
cell.setCellStyle(titleStyle);
cell.setCellValue("custname");
sCell = sRow.createCell((short) 2);
sheet.addMergedRegion(new Region(0, (short) 2, 1, (short) 2));
//clcallid
cell = row.createCell((short) 3);
cell.setCellStyle(titleStyle);
cell.setCellValue("CLCALLID");
sCell = sRow.createCell((short) 3);
sheet.addMergedRegion(new Region(0, (short) 3, 1, (short) 3));
//clcalltime
cell = row.createCell((short) 4);
cell.setCellStyle(titleStyle);
cell.setCellValue("CLCALLTIME");
sCell = sRow.createCell((short) 4);
sheet.addMergedRegion(new Region(0, (short) 4, 1, (short) 4));
//clcsrid
cell = row.createCell((short) 5);
cell.setCellStyle(titleStyle);
cell.setCellValue("CLCSRID");
sCell = sRow.createCell((short) 5);
sheet.addMergedRegion(new Region(0, (short) 5, 1, (short) 5));
//clclitelno
cell = row.createCell((short) 6);
cell.setCellStyle(titleStyle);
cell.setCellValue("CLCLITELNO");
sCell = sRow.createCell((short) 6);
sheet.addMergedRegion(new Region(0, (short) 6, 1, (short) 6));
//callreasontype
cell = row.createCell((short) 7);
cell.setCellStyle(titleStyle);
cell.setCellValue("CALLREASONTYPE");
sCell = sRow.createCell((short) 7);
sheet.addMergedRegion(new Region(0, (short) 7, 1, (short) 7));
//callreason
cell = row.createCell((short);
cell.setCellStyle(titleStyle);
cell.setCellValue("CALLREASON");
sCell = sRow.createCell((short);
sheet.addMergedRegion(new Region(0, (short) 8, 1, (short));
}
/**
* 全局控制 多少列
* @param sheet
*/
private static void processCellWidth(HSSFSheet sheet) {
sheet.setColumnWidth((short) 0, (short) (10 * 256));
sheet.setColumnWidth((short) 1, (short) (15 * 256));
sheet.setColumnWidth((short) 2, (short) (15 * 256));
sheet.setColumnWidth((short) 3, (short) (20 * 256));
sheet.setColumnWidth((short) 4, (short) (20 * 256));
sheet.setColumnWidth((short) 5, (short) (20 * 256));
sheet.setColumnWidth((short) 6, (short) (15 * 256));
sheet.setColumnWidth((short) 7, (short) (15 * 256));
sheet.setColumnWidth((short) 8, (short) (15 * 256));
}
/**
* 将 要导出的数据 的信息填充到Excel中
* @param eb
* @param count
* @param sheet
* @param centerStyle
* @throws Exception
*/
private static void processElectricitybillBasestationToExcel(String[] str, Short count, HSSFSheet sheet, HSSFCellStyle centerStyle, HSSFCellStyle rightStyle) throws Exception {
//根据基站编号取得基站信息
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
//行号
//第一行
HSSFRow row = sheet.createRow(count);
//第一行的单元格
HSSFCell cell = null;
//序号
cell = row.createCell((short) 0);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(count - 1);
cell.setCellStyle(centerStyle);
//车号
cell = row.createCell((short) 1);
cell.setCellStyle(centerStyle);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(str[1]);
//车辆型号
cell = row.createCell((short) 2);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(centerStyle);
cell.setCellValue(str[0]);
}
public static List<String[]> findDate() throws Exception
{
List<String[]> list=new ArrayList<String[]>();
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
conn = DriverManager.getConnection(url, "sl", "sl");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql="select * from student";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs= ps.executeQuery();
while(rs.next()){
String[] s=new String[2];
s[0]=rs.getString("stuId");
s[1]=rs.getString("stuName");
list.add(s);
}
ps.execute();
ps.close();
conn.close();
return list;
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
总结起来,Java连接数据库并导出Excel的过程涉及JDBC的数据库操作和Apache POI的Excel文件生成。通过理解这些技术和API,开发者可以构建一个能够从数据库中获取数据,然后以Excel格式提供的系统。这在Web应用中非常...
总结来说,完成"java操作数据库导出excel"的任务,你需要掌握以下关键点: 1. 使用JDBC连接数据库,执行SQL查询。 2. 处理ResultSet,获取查询结果。 3. 引入Apache POI库,创建Excel工作簿和工作表。 4. 将数据库...
在IT行业中,将数据库数据导出到Excel文件是一种常见的需求,尤其在数据分析、报表生成或者数据备份时。本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 ...
在Java编程环境中,将数据库中的数据导出到Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据备份等场景。这个项目提供了完整的解决方案,包括必要的jar包支持数据连接。以下是关于这个主题的一些关键...
总结起来,"使用poi从数据库导出excel表的示例"是一个结合了Struts1 MVC框架和Apache POI库的Java编程任务,它涉及数据库连接、SQL查询、Excel文件生成以及Web应用响应。这个过程不仅有助于数据的高效管理和分享,也...
3. 预编译SQL语句,根据Excel中的数据生成插入语句,防止SQL注入问题。 4. 将Java对象中的数据转化为适合数据库的格式,执行SQL插入操作。 5. 在Servlet中接收前端请求,调用上述逻辑,处理完成后返回响应信息。 ...
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
其次,从数据库导出数据到Excel则相对简单: 1. 查询数据:使用SQL语句查询需要导出的数据,可以是整个表,也可以是满足特定条件的部分数据。 2. 输出格式设置:确定数据导出的格式,例如CSV或TSV,这两种格式可以...
在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件导入数据到数据库。Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何...
在压缩包的"数据库导出excel"文件中,可能包含有以下内容: 1. 程序源代码:如Java、Python或C#,用于实现数据库连接、查询和Excel导出的功能。 2. 配置文件:用于设置数据库连接参数,如用户名、密码、服务器地址等...
通过条件查询数据库list,根据list去导出多列的excel表格,亲测有效工具类和代码js controller都放在一起
在Java开发中,将数据库中的数据导出到Excel文件是一项常见的需求,特别是在处理大量数据时。本项目专注于解决百万级数据的高效导出问题,同时兼容MySQL和Oracle两大主流数据库。下面将详细介绍这个主题涉及的关键...
在本项目中,"SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip",我们主要关注的是如何利用Java技术栈来处理Excel文件,并与数据库进行交互。以下是相关知识点的...
导出Excel文件 在上面的代码中,我们使用了Response流将数据库数据导出到Excel文件中。该代码主要实现了以下几个步骤: 1. 首先,我们设置Response流的编码为GB2312,这是中国国家标准的编码方式。 2. 其次,我们...
在Java编程环境中,将Oracle数据库的表结构导出到Excel是一种常见的需求,特别是在数据库管理和数据分析时。这个场景可以通过两个核心类来实现:`TableStructureToExcel.java`和`ConnectionOracle.java`。这两个类...
在Java编程中,导出数据到Excel文件是一项常见的任务,特别是在数据分析、报表...通过以上步骤,我们可以构建一个灵活且高效的Java程序,将数据库中的数据导出为具有多级表头的Excel文件,满足数据分析和报告的需求。
1.java连接mongo数据库查询统计信息导出为excel表格 2.所有连接参数都可以动态输入,参数包括:ip、端口、数据库名称、集合名称、查询参数(公众号,写在指定文件中),导出表格存放位置
在Java编程中,将数据库查询结果导出为Excel文件是一项常见的需求,这通常涉及到数据库操作、文件处理以及HTTP响应的构建。以下是对这个主题的详细解释: 首先,我们需要连接到数据库,这通常通过JDBC(Java ...
在IT行业中,数据库的导入和导出是常见的数据管理任务,尤其对于开发人员和系统管理员而言,这是一项必备技能。本项目"java编写的数据库导入和导出工具"旨在简化这个过程,支持对SQL Server和MySQL数据库进行数据的...
Java POI导出图片到Excel示例代码,标题表明了本文的主要内容,即使用Java POI将图片导出到Excel中。 描述解释 描述中提到了本文的主要内容,即使用Java POI将图片导出到Excel中,并提供了详细的示例代码,对大家的...