poi 生成 PPT 创建表格 如何设置表格的 宽度 高度

发布于 2022-09-07 15:36:55 字数 1882 浏览 17 评论 0

代码如下:

    File f = new File("D://demo.pptx");
    
    InputStream in = new FileInputStream(f); 
    XMLSlideShow slideShow = new XMLSlideShow(in);
    
    XSLFSlideLayout layOut = slideShow.getSlideMasters()[0].getLayout(SlideLayout.CUST);
    
    XSLFSlide slide = slideShow.createSlide(layOut);
    
    XSLFTable table = slide.createTable();
    //标题行
    XSLFTableRow titleRow =  table.addRow();
    titleRow.setHeight(44.15);
    //内容行
    XSLFTableRow contentRow =  table.addRow();
    contentRow.setHeight(94.4);
    
    String tableTitles[] = new String[]
            {"AAA","BBB","CCC","DDD","EEE","FFF","GGG"};

    String content[] = new String[]
            {"1","2","3","4","5","6","11"};
    
    for(int x = 0 ; x < tableTitles.length ; x++){
        XSLFTableCell titleCell =  titleRow.addCell();
        titleCell.setBorderBottomColor(new Color(149,179,215));
        XSLFTextRun textRun = titleCell.addNewTextParagraph().addNewTextRun();
        textRun.setFontSize(14);
        textRun.setFontColor(Color.BLACK);
        textRun.setFontFamily("微软雅黑");
        textRun.setText(tableTitles[x]);
        titleCell.addNewTextParagraph().setTextAlign(TextAlign.CENTER);//设置文字居中
        titleCell.setFillColor(new Color(219,229,241));
        titleCell.setBorderLeft(1);
        titleCell.setBorderRight(0.5);
        titleCell.setBorderTop(1);
        titleCell.setBorderBottom(1);
        
        XSLFTableCell contentCell =  contentRow.addCell();
        contentCell.setText(content[x]);
    }
    
    table.setAnchor(new Rectangle2D.Double(18.8,200,60,9000));
    
    System.out.println(table.getAnchor().getWidth());
    
    slideShow.write(new FileOutputStream("D:/xxx.pptx"));

table.setAnchor(new Rectangle2D.Double(18.8,200,60,9000)); 这一句设置了表格的 X Y 位置 以及宽度和高度。
但是输出的文件。发现设置的宽高并没有效果。求大神解答。。

poi版本是3.9

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帥小哥 2022-09-14 15:36:55

尝试设定单元格宽度

table.setColumnWidth(ind, width);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文