poi生成excel文件,poi生成excel文件多表头

需求:解析Word输出文档中的内容Excel文档。

Word内容包括3-5级项目编号、最后一级项目编号应表名,项目编号下文本对应表结构元数据。如图1所示。

poi生成excel文件,poi生成excel文件多表头插图

图一

非叶子项目编号对应于表中的类别。根据文件的项目编号结构,最多有4类。具体编码按10类处理。

  • 读取Word代码
String[] arrLevel = new String[10]; ///保存当前分析位置各级项目编号的文本
BigInteger level = BigInteger.ZERO; //当前level

level = document.getStyles().getStyle(paragraph.getStyle()).getCTStyle().getPPr().getOutlineLvl().getVal();
arrLevel[level.intValue()] = paragraphText.trim();
Table table = null;
Field field = null;
for (int i = 13/*跳过文档目录*/; i < paragraphs.size(); i  ) {
            XWPFParagraph paragraph = paragraphs.get(i);
            String style = paragraph.getStyle();
     if ("90"/*具体文档的值会有所不同,可以debug一下*/.equalsIgnoreCase(style)) {
       //设置当前Table为叶子结点 leaf=true
       
       if(table==null || !table.leaf){
           table = new Table();
           table.leaf = true;
           //设置Table的level
        }
       //分析正文,使用Field对象接收,add到Table中
       field = new Field();
       ...
       ...
       table.addField(field);
     }else{
       // 用Table对象接收
       // 设置Table的level,从全局arrLevel取
       table = new Table();
       table.leaf = false;
       //设置Table的level
     } 
}

// 定义内部存储Table数据
    @Setter
    @Getter
    public class Table {
        boolean leaf = false;
        BigInteger level;
        String[] levels;
        List<Field> fields;
				public void addField(Field value){...}
    }
   
    // 定义内部存储Field数据
    @Getter
    @Setter
    public class Field {
        private String content;
        private String metaName;
        private String metaValue;
     } 



  • 输出到Excel
//表头,和word读取的metaName一致
String[] title = new String[]{""};
//Excel表头,和metaName可以不一致
String[] showTitle = new String[]{""};
 HSSFRow row = sheet.createRow(0);
 for (int i = 0; i < title.length; i  ) {
     HSSFCell cell = row.createCell(i);
     cell.setCellValue(showTitle[i]);
  }
//遍历Tables,过滤leaf=true,创建HSSFRow
///每次遍历Table的Field,创建HSSFCell
**本论坛部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本论坛仅供提供学习交流和参考,禁止用户用于商业行为,并请于下载后24小时内删除,若喜欢该作品请联系原作者购买正版。如果您发现论坛上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
158自学网 » poi生成excel文件,poi生成excel文件多表头
关于售后:
(1)、因部分资料含有敏感关键词,百度网盘无法分享链接,请联系客服进行发送;
(2)、所有资料在您未收到之前,都可以联系微信/QQ:406499404,无条件退款
(3)仅支持原渠道退回,微信支付,支付宝退回至您当初选择的付款方式
(4)不用担心不给资料,如果没有及时回复也不用担心,看到了都会发给您的,请放心!
(5)因部份资源来源互联网,本站不担保其完整性,请知悉!

提供最优质的资源集合

立即查看 了解详情
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?关注我们的公众号吧!♡