问题描述
现在有个需求就是通过解析一个Excel模板来生成Excel报表,取写数据不谈,但得保证的一个是生成的这个Excel报表与模板的样式肯定是一样的,这样就遇到个问题,比如报表的标题,通常都是几个单元格合并起来的,通过poi读取的时候,第一行只有第一列有数据,其他都为空(Excel本身就是这样的吧),那这样我如何取到模板的合并单元格的样式再写入另外的excel中呢? 问题补充:hudingchen 写道
解决方案
以前的一个例子,你参考下:FileOutputStream fileOut = null;try {String rootPath = "C:/TimeReport.xls";POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(rootPath));HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet sheet = wb.getSheetAt(0);//数据操作。。。// Write the output to a filefileOut = new FileOutputStream("C://TimeReport_1011.xls");wb.write(fileOut);} catch(FileNotFoundException e) {e.printStackTrace();} catch(IOException e) {e.printStackTrace();} finally {if (fileOut != null) {fileOut.close();}}
解决方案二:
我目前的想法是先读取一个Excel模板,将模板中的所有单元格按行存入List中,然后在写入新的Excel报表时传入list,分析list中的指标纬度等数据,填充单元格的内容,不知这样是否可行?各位有什么思路?你理解有点问题啊,给你Excel模板文件不是让你读取,而是复制的这个模版(所有的格式),这个模版就是一个excel对象,然后你把数据直接放到这个excel对象中,最后用这个对象生成新的excel
解决方案三:
这样是可行,不过是读写都为同一个WorkBook,如果读写要分开做,在写入的时候是一个新的WorkBook这样能做到吗?谢谢 和是不是一个workbook没有关系阿,我的代码是读取TimeReport.xls文件,创建这个文件的POIFSFileSystem对象,数据操作,生成一个新的excel文件。