问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用java将数据库中的数据导出到excel中

发布网友 发布时间:2022-04-25 21:56

我来回答

2个回答

热心网友 时间:2022-04-08 03:02

用jxl来实现
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;public String importEnter(HttpServletRequest request) {
Connection conn = null;
PreparedStatement ps = null;
OpenDbBean db = new OpenDbBean();
String message = "";
try {
ServletInputStream is = request.getInputStream();
byte[] junk = new byte[1024];
int bytesRead = 0;
//去掉浏览器发送的垃圾信息
bytesRead = is.readLine(junk, 0, junk.length);
bytesRead = is.readLine(junk, 0, junk.length);
bytesRead = is.readLine(junk, 0, junk.length);
bytesRead = is.readLine(junk, 0, junk.length);
Workbook workbook = Workbook.getWorkbook(is);
//取得第一个工作录
Sheet sheet = workbook.getSheet(0);
//从第二行开始取数据并处理
Enter enter = new Enter();
//连接数据库
conn = db.getConnection();
String sql =
"insert into haocai_enter(enter_id,enter_time,amount,jsr,type_id,xh)"
+ " values(s_enter_id.nextval,to_date(?,'dd/mm/yyyy'),?,?,?,?)";
ps = conn.prepareStatement(sql);
int okCount = 0;
ArrayList errorRows = new ArrayList();
for (int i = 1; i < sheet.getRows(); i++) {
DB mydb = new DB();
Cell[] c = sheet.getRow(i);
String type_id = enter.getTypeIdByPm(c[PM].getContents());
if (type_id != null) {
//设置入库数据
ps.setString(1, c[ENTER_TIME].getContents());
ps.setString(2, c[AMOUNT].getContents());
ps.setString(3, c[JSR].getContents());
ps.setString(4, type_id);
ps.setString(5, c[XH].getContents());
ps.addBatch();
okCount++;
} else {
message += "<br>第" + i + "行 " + c[PM].getContents() + " 导入失败";
}
}
//执行该批过程
if (okCount > 0) {
ps.executeBatch();
}
message += "<br>成功导入" + okCount + " 行";
workbook.close();
} catch (Exception e) {
System.out.println(e.getMessage());
message += "<br>" + e.getMessage();
} finally {
try {
db.CleanConnection(conn, ps, null);
} catch (SQLException e1) {
e1.printStackTrace();
}
}
return message;
}

用jxl.jar或者poi都可以,poi可以到apache网站上去下。

利用Java 创建和读取Excel文档
为了保证示例程序的运行,必须安装Java 2 sdk1.4.0 和Jakarta POI,Jakarta POI的Web站点是: http://jakarta.apache.org/poi/

示例1将演示如何利用Jakarta POI API 创建Excel 文档。

示例1程序如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
public class CreateXL {
/** Excel 文件要存放的位置,假定在D盘JTest目录下*/
public static String outputFile="D:/JTest/ gongye.xls";
public static void main(String argv[])
{
try
{
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标");
HSSFSheet sheet = workbook.createSheet();
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short)0);
//在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("增加值");
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成...");

}catch(Exception e) {
System.out.println("已运行 xlCreate() : " + e );
}
}
}

读取Excel文档中的数据
示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongye.xls的Excel文件。
示例2程序如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
/** Excel文件的存放位置。注意是正斜线*/
public static String fileToBeRead="D:/JTest/ gongye.xls";
public static void main(String argv[]){
try{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
// 创建对工作表的引用。
// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
HSSFSheet sheet = workbook.getSheet("Sheet1");
// 也可用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
// 读取左上端单元
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
// 输出单元内容,cell.getStringCellValue()就是取所在单元的值
System.out.println("左上端单元是: " + cell.getStringCellValue());
}catch(Exception e) {
System.out.println("已运行xlRead() : " + e );
}
}
}

设置单元格格式
在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java

中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:

1、创建字体,设置其为红色、粗体:
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、创建格式
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font);
3、应用格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("标题 ");

总之,如本篇文章所演示的一样,Java程序员不必担心Excel工作表中的数据了,利用Jakarta POI API,

我们就可以轻易的在程序中存取Excel文档。

参考资料:开发者在线http://www.builder.com.cn/

热心网友 时间:2022-04-08 04:20

楼上很详细啊~ 留个脚印当书签~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中美有什么经济冲突 杨凌衡水实验中学高中学费是多少 蒂芙尼珍珠项链怎么清洗和保养? tiffany&amp;co 的缺点 如何保养蒂芙尼的项链? tiffany保养要多久时间 Tiffany珠宝需要多长时间保养? 人为什么活着,怎样活着都是无憾!! 孩子犟的不行家长怎么教育 有什么比较好用的游戏视频录制软件? 适用于Windows的10个好用的游戏录制软件 什么年龄开始适合吃燕窝?像简安颜的燕窝呢? 怎样梳发型才好看图片 女人吃燕窝的最佳年龄 如何实现从SQL数据库表中导出数据到Excel 怎样梳出好看的发型?? C#的后台,如何导出EXCEL 怎样梳好看的发型带图教 怎样梳头发好看 华为手机指纹设置 给印刷厂起个名字 三个字 大气的 谢谢 WIN10窗口的背景底色由护眼色改回原来系统默认的白色怎么设置 帮忙取个家具厂的名字要三个字的大气好听的 Win10中怎么添加桌面背景设置窗口 怎么梳漂亮的头发 大气三个字注册商标的名字有哪些? 怎样梳好看的发型 怎样梳一个简单好看的发型? 电子厂取名,3字的要大气 怎么样梳头发好看又简单 怎么梳好看的头发 怎么可以梳好看的发型 燕窝适合什么年龄段的人吃 发型怎样能梳出好看的发型 女人吃燕窝什么年龄最佳的事迹 姓宋应该起什么好听又有意义的名字?男女都要 燕窝什么年龄吃 我姓宋 小孩是2012.4.20号下午三点一十六分出生的 是个男孩 请问取个什么名字好呢? 女人 多大年龄 吃燕窝 姓宋的,取什么名字既好听、意义又好? 多大年龄吃燕窝好? 女人过了五十岁后,可以经常吃燕窝吗? 小宝宝姓宋起什么名字好? 女人吃燕窝什么年龄最佳的事迹大神们帮帮忙 吃燕窝适合什么年龄段的人群? 燕窝适合多大年龄的女性吃 使用手提式灭火器时站在离火源要多远,右手分别怎么正 宝贝姓宋,想起个好名字,男孩女孩 年纪多大可以开始吃燕窝啊? 姓宋男孩名字卓子辈起什么名字好 燕窝适合17岁女生吃吗?