求助~~~关于jxl写大批量数据的Excel
对于jxl不是很熟悉,简单的写了个读文件出excel的程序。
但是现在这样做法一旦数据量太大,缓存就爆掉了。请教大牛怎么样才能实现读取一部分数据,先写入Excel,然后再读一部分再写进去。
当然有更好的方法就最好了~
但是现在这样做法一旦数据量太大,缓存就爆掉了。请教大牛怎么样才能实现读取一部分数据,先写入Excel,然后再读一部分再写进去。
当然有更好的方法就最好了~
package jxl;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class JxlExcelWriter {
/**
* @param out 输出excel文件.
* @param br 输入txt文件.
*/
public void writeExcel(OutputStream out, BufferedReader br) {
if(br == null) {
throw new IllegalArgumentException("写excel流需要file!");
}
try {
WritableWorkbook workbook = Workbook.createWorkbook(out);
WritableSheet ws = workbook.createSheet("sheet 1", 0);
int rowNum = 0; // 写入行数
//文件行数
String line = null;
while((line = br.readLine()) != null){
String[] data = line.split("\t");
Object[] cells = (Object[]) data;
putRow(ws, rowNum, cells); // 写一行到sheet
rowNum++;
}
workbook.write();
workbook.close(); // 关闭、保存Excel
System.out.print("success!");
} catch (RowsExceededException e) {
System.out.println("jxl write RowsExceededException: "+e.getMessage());
} catch (WriteException e) {
System.out.println("jxl write WriteException: "+e.getMessage());
} catch (IOException e) {
System.out.println("jxl write file i/o exception!, cause by: "+e.getMessage());
}
}
private void putRow(WritableSheet ws, int rowNum, Object[] cells) throws RowsExceededException, WriteException {
for(int i=0; i<cells.length; i++) {
Label cell = new Label(i, rowNum, ""+cells[i]);
ws.addCell(cell);
}
}
public static void main(String args[]) {
try {
BufferedReader br = new BufferedReader(new FileReader("e:/input/data.txt"));
OutputStream out = new FileOutputStream(new File("e:/out/test.xls"));
JxlExcelWriter jxlExcelWriter = new JxlExcelWriter();
jxlExcelWriter.writeExcel(out, br);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
...全文
相关推荐
解决大批量数据导出Excel产生内存溢出的方案
解决大批量数据导出Excel产生内存溢出的方案
Java中使用JXL库生成和处理Excel报表
本文还有配套的精品资源,点击获取 简介:在Java中处理Excel报表是一项常见任务,尤其是在数据导出和分析应用中。JXL库是一个流行的Java库,它允许开发者用Java语言轻松读写Microsoft Excel文件。本文将深入探讨如何使用JXL库在Java中创建Excel报表,并从数据库读取和排列数据。我们将通过构建复杂的报表、格式化单元格、合并单元格和排列数据来展示这些...
精通Java JXL操作Excel库
本文还有配套的精品资源,点击获取 简介:Java JXL是一个开源库,专门用于在Java程序中读取、写入和操作Excel文件。它提供了一套方便的API,支持多种Excel操作,比如读写单元格内容、格式化工作表、插入公式和图像等。本教程详细介绍了如何使用JXL库实现基本与高级Excel操作,包括安装导入、单元格和工作表管理、样式格式化、以及性能最佳实践。 1. JX...
Java利用JXL读写Excel
Java利用JXL读和写操作Excel表格示例代码,可直接导入MyEclipse使用
JXL操作excel设置字体颜色设置单元格详解
JXL操作excel 字体 颜色 设置单元格 详解


