iteye_6040
2011-05-12 16:09
浏览 404
已采纳

如何通过poi读取Excel中合并的单元格再以同样的样式写入另外一个Excel中?

现在有个需求就是通过解析一个Excel模板来生成Excel报表,取写数据不谈,但得保证的一个是生成的这个Excel报表与模板的样式肯定是一样的,这样就遇到个问题,比如报表的标题,通常都是几个单元格合并起来的,通过poi读取的时候,第一行只有第一列有数据,其他都为空(Excel本身就是这样的吧),那这样我如何取到模板的合并单元格的样式再写入另外的excel中呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • iteye_8576 2011-05-12 17:16
    已采纳

    以前的一个例子,你参考下:

    [code="java"] 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 file
            fileOut = 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();
            }
        }[/code]
    
    点赞 评论
  • iteye_8576 2011-05-13 11:24

    [color=red]这样是可行,不过是读写都为同一个WorkBook,如果读写要分开做,在写入的时候是一个新的WorkBook这样能做到吗?谢谢 [/color]

    和是不是一个workbook没有关系阿,
    我的代码是读取TimeReport.xls文件,创建这个文件的POIFSFileSystem对象,数据操作,生成一个新的excel文件。

    点赞 评论
  • iteye_8576 2011-05-13 11:28

    [color=red]我目前的想法是先读取一个Excel模板,将模板中的所有单元格按行存入List中,然后在写入新的Excel报表时传入list,分析list中的指标纬度等数据,填充单元格的内容,不知这样是否可行?各位有什么思路?[/color]

    你理解有点问题啊,给你Excel模板文件不是让你读取,而是复制的这个模版(所有的格式),这个模版就是一个excel对象,然后你把数据直接放到这个excel对象中,最后用这个对象生成新的excel

    点赞 评论

相关推荐 更多相似问题