作者:乔山办公网日期:
返回目录:excel表格制作
分页查数据,每写完一个sheet,就存一次档(文件保存到硬盘上),并关闭所有文件操作,主动gc;
下一个sheet,重新打开文档,并重复上面一步。
反复重复上面两步,直到你的数据写入完为止。
public class Test {
public static void main(String[] args) {
try {
InputStream fis = new FileInputStream("c:/test.xls");
Workbook wb = Workbook.getWorkbook(fis);
WritableWorkbook newWb = Workbook.createWorkbook(new File(
"c:/newTest.xls"), wb);
newWb.importSheet("NewSheet", 0, wb.getSheet(0));
fis.close();
wb.close();
newWb.write();
newWb.close();
}catch (BiffException e) {e.printStackTrace();}
catch (IOException e) {e.printStackTrace();}
catch (WriteException e) {e.printStackTrace();}
}
}
建议用poi,jxl不支持office2007格式,
而且有的时候如果模板里有不支持的内容,
会提示7a686964616fe4b893e5b19e366,文件显示文件错误,可能某些格式丢失的情况,但并不影响使用
哪怕你安装的是2007,另存的时候是也选择的是2003格式,也可能会有这个提示的
原因未知,可能是兼容性的问题,另存为就又好了
方法1:
选workbook1的sheet1 Ctrl+A Ctrl+C 然后选workbook2。 sheet1 Ctrl+V 我试过CP 38万条数据 也用不了多久。
方法2:
右键点原数据的sheet表,选“移动或复制工作表”,在工作薄中选择目标文件名,选中“建立副本”。
方法3:
如果是多文件。多sheet表。在被写入的文件中写入VBA
Public filepath As String
Public excelapp As New Excel.Application
dim x,y,n,m as long
filepath="你要读取的原数据文件路径+文件名+文件后缀" '可设为字符变量
Set Workbook = excelapp.Workbooks.Open(Filename:=filepath)
with excelapp.application
n=excelapp.sheets("原数据表名e799bee5baa6e79fa5e98193e4b893e5b19e366称").usedrange.rows.count
m=excelapp.sheets("原数据表名称").usedrange.columns.count
sheets("被写入数据吧表名称").cells(1,1).resize(n,m).value=excelapp.sheets("原数据表名称").cells(1,1).resize(n,m).value
end with
excelapp.application.quit
应该是你差错了。