java poi导出PPT格式

1:maven 依赖:

采用的是4.1.2的版本导出

  <!--导出文件-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

2:代码源码

XMLSlideShow ppt = new XMLSlideShow();
        XSLFSlide slide = ppt.createSlide();//创建幻灯片
        XSLFTextBox textBox = slide.createTextBox();
        textBox.setAnchor(new Rectangle2D.Double(10,10, 200, 30));
        textBox.addNewTextParagraph().addNewTextRun().setText("创建幻灯片");

        Object[][] datas = {{"区域产品销售额","",""},{"区域", "总销售额(万元)", "总利润(万元)简单的表格"}, {"江苏省" , 9045,  2256}, {"广东省", 3000, 690}};
        XSLFTable table = slide.createTable();//创建表格
        table.setAnchor(new Rectangle2D.Double(10, 50, 0, 0));
        for(int i = 0; i < datas.length; i++) {
            XSLFTableRow tableRow = table.addRow(); //创建表格行
            for(int j = 0; j < datas[i].length; j++) {
                XSLFTableCell tableCell = tableRow.addCell();//创建表格单元格
                XSLFTextParagraph p = tableCell.addNewTextParagraph();
                XSLFTextRun tr = p.addNewTextRun();
                tr.setText(String.valueOf(datas[i][j]));

                tableCell.setFillColor(Color.getColor("0xdd7e6b"));
                p.setTextAlign(TextParagraph.TextAlign.CENTER);
                tableCell.setVerticalAlignment(VerticalAlignment.MIDDLE);

                if(i == datas.length - 1 && j == 3-1) {
                    tr.setFontSize(16d);
                    tr.setBold(true);
                    tr.setItalic(true);
                    tr.setUnderlined(true);
                    tr.setFontFamily("\u5b8b\u4f53");
                    tr.setFontColor(Color.RED);
                }
                tableCell.setBorderWidth(TableCell.BorderEdge.left,1);
                tableCell.setBorderWidth(TableCell.BorderEdge.right,1);
                tableCell.setBorderWidth(TableCell.BorderEdge.top,1);
                tableCell.setBorderWidth(TableCell.BorderEdge.bottom,1);
                tableCell.setBorderColor(TableCell.BorderEdge.bottom,Color.BLACK);
                tableCell.setBorderColor(TableCell.BorderEdge.left,Color.BLACK);
                tableCell.setBorderColor(TableCell.BorderEdge.right,Color.BLACK);
                tableCell.setBorderColor(TableCell.BorderEdge.top,Color.BLACK);
            }
            tableRow.setHeight(30);
        }

        //设置列宽
        table.setColumnWidth(0, 150);
        table.setColumnWidth(1, 150);
        table.setColumnWidth(2, 250);

        //合并单元格
        table.mergeCells(0, 0, 0, 2);

        //插入图片
        byte[] bt = FileUtils.readFileToByteArray(new File("D:\\Users\\ppt.png"));
        XSLFPictureData idx = ppt.addPicture(bt, PictureData.PictureType.PNG);
        XSLFPictureShape pic = slide.createPicture(idx);
        pic.setAnchor(new Rectangle2D.Double(10, 200, 339, 197));

        //创建一个文本链接
        XSLFTextBox linkText = slide.createTextBox();
        linkText.setAnchor(new Rectangle2D.Double(430, 310, 80, 30));
        XSLFTextRun r = linkText.addNewTextParagraph().addNewTextRun();
        r.setText("Apache POI");
        XSLFHyperlink link = r.createHyperlink();
        link.setAddress("http://poi.apache.org");

        ppt.write(new FileOutputStream("D:\\Users\\pptTest.pptx"));

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java POI是Apache软件基金会开发和维护的一个开源的Java API,用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。使用POI可以实现Java程序导出并下载Excel文件,在Web开发中非常常见。 使用Java POI导出下载Excel文件的步骤如下: 1. 首先,需要引入POI的相关依赖库,可以在Maven项目中添加如下依赖: ``` <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> ``` 2. 创建一个Workbook对象,用于表示Excel文件。 3. 创建Sheet对象,用于表示Excel文件中的一个工作表。 4. 添加数据到Sheet对象中,可以使用Cell对象来设置每个单元格的值。 5. 设置文件名和文件类型,通常将文件名设置为一个含有扩展名的字符串。 6. 用OutputStream将Workbook对象写入到输流中。 7. 设置HTTP响应头部信息,包括Content-Disposition和Content-Type等。 8. 将OutputStream中的数据写入到HTTP响应输流中,完成文件下载。 可以通过以下示例代码实现Java POI导出下载Excel文件: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.IOException; import java.io.OutputStream; import java.util.Date; public class ExcelExporter { public void exportExcel(OutputStream outputStream) throws IOException { // 创建Workbook对象 Workbook workbook = new XSSFWorkbook(); // 创建Sheet对象 Sheet sheet = workbook.createSheet("Sheet1"); // 添加数据到Sheet对象中 Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello, World!"); // 设置文件名和文件类型 String filename = "sample.xlsx"; // 写入数据到输流中 workbook.write(outputStream); // 设置HTTP响应头部信息 String contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; String contentDisposition = "attachment; filename=\"" + filename + "\""; response.setHeader("Content-Type", contentType); response.setHeader("Content-Disposition", contentDisposition); // 将数据写入到HTTP响应输流中 outputStream.flush(); outputStream.close(); workbook.close(); } } ``` 通过上述方式,就可以使用Java POI实现导出并下载Excel文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值