我是靠谱客的博主 有魅力皮卡丘,最近开发中收集的这篇文章主要介绍java 修改保存excel,java Excel 工具(修改excel表格并保存),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近搞excel,用到JXL 。然后读写的时候遇到问题 -- jxl竟然修改一个excel还要先读入再copy,然后才能再那份copy上修改,囧;更囧的是copy以后是2份内存啊~偶的机器直接outofmemory。。。加了-xmx128m才勉强过去,为撒这么不人性化。。。记得以前好像大家都使用 POI的,故google之 ,发现版本已经升级到3.6轰轰~

下下来,运行找不到类WorkbookFactory 结果在一个什么ooxml什么的包里,囧。经过测试,的确poi的速度有点大跌眼镜,36116行的数据,2者的解析时间差了4倍,输出时间差了2.5倍。不过POI应该是更强大点,JXL的copy会丢失用户的筛选(小遗憾)。不过JXL用起来真不是很顺手,读和写还要分开,2份东东,实现类是2套,感觉对用户不是很友好,哎,谁叫人家速度快呢~

//测试JXL

long st = System.currentTimeMillis();

InputStream inp = new FileInputStream(

"d:/mydoc/sftp/admin(2010.09.20.152644.798)(.知识库类型树)gai.xls");

Workbook wb = WorkbookFactory.create(inp);

Sheet sheet = wb.getSheetAt(0);

Row row = sheet.getRow(1);

Cell cell = row.getCell(5);

if (cell == null)

cell = row.createCell(3);

CellStyle style = wb.createCellStyle();

style.setFillForegroundColor(IndexedColors.AQUA.getIndex());

style.setFillPattern(CellStyle.SOLID_FOREGROUND);

cell.setCellValue("a test");

System.out.println(System.currentTimeMillis() - st);

cell.setCellStyle(style);

// Write the output to a file

FileOutputStream fileOut = new FileOutputStream("/test.xls");

wb.write(fileOut);

fileOut.close();

System.out.println(System.currentTimeMillis() - st);

//测试POI

long st = System.currentTimeMillis();

InputStream inp = new FileInputStream(

"d:/mydoc/sftp/admin(2010.09.20.152644.798)(.知识库类型树)gai.xls");

FileOutputStream fileOut = new FileOutputStream("/test.xls");

Workbook wb = Workbook.getWorkbook(inp);

System.out.println(System.currentTimeMillis() - st);

WritableWorkbook writeWb = Workbook.createWorkbook(fileOut, wb);

System.out.println(System.currentTimeMillis() - st);

WritableSheet sheet = writeWb.getSheet(0);

try {

WritableCell c = sheet.getWritableCell(5, 1);

WritableCellFormat newFormat = new WritableCellFormat(c

.getCellFormat());

newFormat.setBackground(Colour.RED);

c.setCellFormat(newFormat);

} catch (WriteException e) {

e.printStackTrace();

}

// Write the output to a file

writeWb.write();

writeWb.close();

fileOut.close();

System.out.println(System.currentTimeMillis() - st);

测试结果如下:

JXL

POI

读取/解析时间

469ms

1843ms

copy到写工作簿时间

1200ms

输出时间

800ms

5015ms

PS:后来深入用了,发现POI还真是蛮强大的(新闻组很活跃)。。可以部分着色,Cell有RichTextString。

最后

以上就是有魅力皮卡丘为你收集整理的java 修改保存excel,java Excel 工具(修改excel表格并保存)的全部内容,希望文章能够帮你解决java 修改保存excel,java Excel 工具(修改excel表格并保存)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部