精华内容
下载资源
问答
  • I want to create a table in Word with POI-HWPF (e.g. doc format).My example code is:Table table = document.getRange().insertTableBefore((short) 2, 2);The table is inserted, but I can't see it - as if ...

    I want to create a table in Word with POI-HWPF (e.g. doc format).

    My example code is:

    Table table = document.getRange().insertTableBefore((short) 2, 2);

    The table is inserted, but I can't see it - as if the table has the width 0.

    Can anybody help me?

    解决方案

    The file linked in this old bug report should give you an idea how to do it.

    So in essence: You probably need to add some content (i.e. a paragraph in a cell) so that Word has something to render.

    Here is the example code used in the bug report:

    private static void test (int rows, int columns) throws Exception {

    // POI apparently can't create a document from scratch,

    // so we need an existing empty dummy document

    POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("empty.doc"));

    HWPFDocument doc = new HWPFDocument(fs);

    Range range = doc.getRange();

    Table table = range.insertBefore(new TableProperties(columns), rows);

    for (int rowIdx=0; rowIdx

    TableRow row = table.getRow(rowIdx);

    System.out.println("row "+rowIdx);

    for (int colIdx=0; colIdx

    TableCell cell = row.getCell(colIdx);

    System.out.println("column "+colIdx+", num paragraphs "+cell.numParagraphs());

    try {

    Paragraph par = cell.getParagraph(0);

    par.insertBefore(""+(rowIdx*row.numCells()+colIdx));

    } catch (Exception ex) {

    ex.printStackTrace();

    }

    }

    }

    展开全文
  • java: public static void main(String[] args) { // 文档生成方法 XWPFDocument doc = new XWPFDocument(); XWPFParagraph p1 = doc.createParagraph(); // 创建段落 XWPFRun r1 = p1.crea...

    spring boot 项目

    java:

    public static void main(String[] args) {
        // 文档生成方法
        XWPFDocument doc = new XWPFDocument();
        XWPFParagraph p1 = doc.createParagraph(); // 创建段落
        XWPFRun r1 = p1.createRun(); // 创建段落文本
        r1.setText("目录"); // 设置文本
        FileOutputStream out = null; // 创建输出流
        try {
            // 向word文档中添加内容
            XWPFParagraph p3 = doc.createParagraph(); // 创建段落
            XWPFRun r3 = p3.createRun(); // 创建段落文本
            r3.addTab();// tab
            r3.addBreak();// 换行
            r3.setBold(true);
            XWPFParagraph p2 = doc.createParagraph(); // 创建段落
            XWPFRun r2 = p2.createRun(); // 创建段落文本
            // 设置文本
            r2.setText("表名");
            r2.setFontSize(14);
            r2.setBold(true);
            XWPFTable table1 = doc.createTable(8, 10);
            table1.setWidthType(TableWidthType.AUTO);
    
            // 获取到刚刚插入的行
            XWPFTableRow row1 = table1.getRow(0);
            // 设置单元格内容
            row1.getCell(0).setText("字段名");
            row1.getCell(1).setText("字段说明");
            row1.getCell(2).setText("数据类型");
            row1.getCell(3).setText("长度");
            row1.getCell(4).setText("索引");
            row1.getCell(5).setText("是否为空");
            row1.getCell(6).setText("主键");
            row1.getCell(7).setText("外键");
            row1.getCell(8).setText("缺省值");
            row1.getCell(9).setText("备注");
    
            doc.setTable(0, table1);
            String filePath = "F:\\simple.docx";
            out = new FileOutputStream(new File(filePath));
            doc.write(out);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
    
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
    
                    e.printStackTrace();
                }
            }
    
        }
    
    }

     

    pom.xml:

     

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    
        <!--<dependency>-->
            <!--<groupId>org.apache.poi</groupId>-->
            <!--<artifactId>poi-ooxml</artifactId>-->
            <!--<version>3.14</version>-->
        <!--</dependency>-->
    
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-excelant</artifactId>
            <version>3.14</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-examples</artifactId>
            <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.10-FINAL</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.0.0</version>
        </dependency>
    
       <!--Apache poi  在word中的表格中插入表格,图片等操作  开始-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.0.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>3.1.0</version>
        </dependency>
    
        <dependency>
            <groupId>com.deepoove</groupId>
            <artifactId>poi-tl</artifactId>
            <version>1.6.0-beta1</version>
        </dependency>
        <!--结束-->
    
    
        <!--<dependency>-->
            <!--<groupId>org.apache.xmlbeans</groupId>-->
            <!--<artifactId>xmlbeans</artifactId>-->
            <!--<version>2.6.0</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-commons</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
    
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
    
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.9.4</version>
        </dependency>
    
        <dependency>
            <groupId>jacob</groupId>
            <artifactId>jacob</artifactId>
            <scope>system</scope>
            <systemPath>${basedir}/lib/jacob.jar</systemPath>
        </dependency>
    
        <dependency>
            <groupId>ooxml-schemas</groupId>
            <artifactId>ooxml-schemas</artifactId>
            <scope>system</scope>
            <systemPath>${basedir}/lib/ooxml-schemas-1.1.jar</systemPath>
        </dependency>
    
        <dependency>
            <groupId>spire.doc.free-2.7.3</groupId>
            <artifactId>spire.doc.free-2.7.3</artifactId>
            <scope>system</scope>
            <systemPath>${basedir}/lib/spire.doc.free-2.7.3.jar</systemPath>
        </dependency>
    
    </dependencies>

     

    展开全文
  • poi版本选3.10以上的 要不然插入图片 word会打不开 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version&...

    poi版本选3.10以上的 要不然插入图片 word会打不开 

    		<dependency>
    		    <groupId>org.apache.poi</groupId>
    		    <artifactId>poi</artifactId>
    		    <version>3.11</version>
    		</dependency>
    		
    		<dependency>
    		    <groupId>org.apache.poi</groupId>
    		    <artifactId>poi-ooxml</artifactId>
    		    <version>3.11</version>
    			<exclusions>
    		    	<exclusion>
    		    		<artifactId>stax-api</artifactId>
    		    		<groupId>stax</groupId>
    		    	</exclusion>
    		    </exclusions>
    		</dependency>

     我下面代码中imgurl是base64编码,让后转的图片,你们使用的话,直接替换成图片路径地址就可以了

    headList参数表示表格头部需要合并的集合,如果相邻左右或者上下位置的内容相同,就会自动合并单元格

            List<List<String>> headList = new ArrayList<>();
            headList.add(Arrays.asList(new String[]{"1","2","2","3","3","4","4","5"}));
            headList.add(Arrays.asList(new String[]{"1","6","7","8","9","10","11","5"}));
            headList.add(Arrays.asList(new String[]{"1","12","13","14","15","16","17","5"}));

    dataList参数表示表格下方的数据集合,会根据headList中第一行的长度进行自动换行,传入 dataList参数的长度只要是headList(0)的长度的倍数即可.

    其余的一些参数是我项目中使用到的,你们看着删一删就行了.

    需要追加功能的话,创建一个WordExport 对象,然后一直调它的makeWord方法即可,需要生成新的word的话,重新创建对象.

    package com.runstone.rsflow.word;
    
    import com.runstone.system.util.ConstantParam;
    import org.apache.commons.lang.StringUtils;
    import org.apache.logging.log4j.Logger;
    import org.apache.poi.util.Units;
    import org.apache.poi.xwpf.usermodel.*;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
    import sun.misc.BASE64Decoder;
    
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    public class WordExport {
    
        private XWPFDocument document;
        private FileOutputStream out;
        private File file;
    
        public File getFile() {
            return file;
        }
    
        public void setFile(File file) {
            this.file = file;
        }
    
        /**
         *
         * @param title  pdf的标题
         * @param imgUrl 图片base64码
         * @param filePath  要保存word的路径  例:d:/
         * @param fileName  word的文件名   例:1.pdf
         * @param headList  表格头部的list数据
         * @param dataList  表格下方的内容数据   按顺序填入集合中即可
         * @param log
         */
        public void makeWord (List<String> title, List<String> imgUrl, String filePath, String fileName,
                             List<List<String>> headList, List<String> dataList, String note,File file, Logger log){
    
            fileName = fileName.replaceAll("/", "");
            fileName = fileName.replaceAll("\\\\","");
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String format = simpleDateFormat.format(new Date());
            filePath += format+File.separator;
            String imgName = filePath+ UUID.randomUUID().toString()+".png";
            File f = new File(filePath);
            if (!f.exists()){
                f.mkdirs();
            }
            OutputStream imgOut = null;
            try {
                if (file.exists()){
                    //添加标题
                    XWPFParagraph titleParagraph2 = document.createParagraph();
                    //设置段落居中
                    titleParagraph2.setAlignment(ParagraphAlignment.CENTER);
                    XWPFRun titleParagraphRun2 = titleParagraph2.createRun();
                    titleParagraphRun2.setText("  ");
                    titleParagraphRun2.setFontSize(50);
                }
    
                /*对于每个new的OutputStream对象,只能被document.write()执行一次保存操作*/
                /*所以每次写入新的段落都要新建OutputStream,否则执行第二次会报错*/
                out = new FileOutputStream(file);
    
                for (int i=0;i<title.size();i++){
                    if (i==0){
                        if (StringUtils.isNotBlank(title.get(i))){
                            //添加标题
                            XWPFParagraph titleParagraph = document.createParagraph();
                            //设置段落居中
                            titleParagraph.setAlignment(ParagraphAlignment.CENTER);
                            XWPFRun titleParagraphRun = titleParagraph.createRun();
                            titleParagraphRun.setText(title.get(i));
                            titleParagraphRun.setColor("000000");
                            titleParagraphRun.setFontSize(20);
                        }
                        if (StringUtils.isNotBlank(note)){
                            //添加标题
                            XWPFParagraph titleParagraph = document.createParagraph();
                            XWPFRun titleParagraphRun = titleParagraph.createRun();
                            titleParagraphRun.setText(note);
                            titleParagraphRun.setFontSize(10);
                        }
                    }else{
                        //二级标题
                        //添加标题
                        XWPFParagraph titleParagraph = document.createParagraph();
                        //设置段落居中
                        XWPFRun titleParagraphRun = titleParagraph.createRun();
                        titleParagraphRun.setText(title.get(i));
                        titleParagraphRun.setColor("000000");
                        titleParagraphRun.setFontSize(15);
                    }
                }
    
                if (imgUrl!=null && imgUrl.size()>0){
                    //基本信息表格
                    XWPFTable imgTable = document.createTable((int)Math.ceil(Double.parseDouble(String.valueOf(imgUrl.size()))/2),imgUrl.size()>1?2:1);
                    imgTable.getCTTbl().getTblPr().unsetTblBorders();
    
                    int width = imgUrl.size()>1?190:505;
                    int height = imgUrl.size()>1?75:205;
                    XWPFParagraph paragraph = document.createParagraph();
                    int row = 0;
                    int col = 0;
    
                    for (int i=0;i<imgUrl.size();i++){
                        if (StringUtils.isNotBlank(imgUrl.get(i))){
                            String img = imgUrl.get(i).replaceAll(" ", "+");
                            String[] url = img.split("base64,");
                            String u = url[1];
                            // Base64解码
                            byte[] b = new BASE64Decoder().decodeBuffer(u);
                            // 生成图片
                            File file1 = new File(imgName);
                            imgOut = new FileOutputStream(file1);
                            imgOut.write(b);
                            imgOut.flush();
                            imgOut.close();
    
                            //插入图片
    
                            XWPFRun run1 = paragraph.createRun();
    
                            FileInputStream fileInputStream = new FileInputStream(file1);
                            run1.addPicture(fileInputStream, XWPFDocument.PICTURE_TYPE_PNG, imgName, Units.toEMU(width), Units.toEMU(height));
                            //imgTable.getRow(row).getCell(col).addParagraph(paragraph);
    
                            fileInputStream.close();
    
                            col++;
                            if (col%2==0){
                                row++;
                                col=0;
                            }
                            file1.delete();
                        }
                    }
    
                    if (headList!=null){
                        makeData(headList,dataList);
                    }
    
                    FileOutputStream out = new FileOutputStream(new File(filePath+fileName));
                    document.write(out);
                    out.close();
                }
            } catch (Exception e) {
                log.error(ConstantParam.ERROR_SYSTEM,e);
            } finally {
                if (out!=null){
                    try {
                        out.close();
                    } catch (IOException e) {
                        log.error(ConstantParam.ERROR_SYSTEM,e);
                    }
                }
                if (imgOut!=null){
                    try {
                        imgOut.close();
                    } catch (IOException e) {
                        log.error(ConstantParam.ERROR_SYSTEM,e);
                    }
                }
                if (StringUtils.isNotBlank(imgName)){
                    File file1 = new File(imgName);
                    if (file1.exists()){
                        file1.delete();
                    }
                }
            }
        }
    
        public WordExport(String filePath,String fileName) {
    
            fileName = fileName.replaceAll("/", "");
            fileName = fileName.replaceAll("\\\\","");
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String format = simpleDateFormat.format(new Date());
            filePath += format+File.separator;
            File file = new File(filePath+fileName);
            document = new XWPFDocument();    /*document对象可以只创建一次*/
            this.file = file;
        }
    
    
        /**
         * 合并单元格方法
         * @param list  表格头部数据 list中相连下标位置内容如果相同自动合并 上下位置内容相同自动合并
         * @param dataList  表格内容数据   按顺序填入集合中即可
         * @return
         */
        private void makeData(List<List<String>> list,List<String> dataList) throws Exception{
            int length = list.get(0).size();
            List<List<Map<String,String>>> aa = new ArrayList<>();
    
            for (int i=0;i<list.size();i++){
                List<String> strings = list.get(i);
                int colNum = 1;
                List<Map<String,String>> bb = new ArrayList<>();
                for (int j=0;j <strings.size();j++){
                    if (j+1<strings.size()){
                        if (strings.get(j).equals(strings.get(j+1))){
                            colNum++;
                        }else{
                            Map<String,String> map = new HashMap<>();
                            map.put("value",strings.get(j));
                            map.put("colspan",colNum+"");
    
                            bb.add(map);
    
                            for (int a=1;a<colNum;a++){
                                bb.add(null);
                            }
                            colNum=1;
                        }
                    }else{
                        Map<String,String> map = new HashMap<>();
                        map.put("value",strings.get(j));
                        map.put("colspan",colNum+"");
                        bb.add(map);
                        for (int a=1;a<colNum;a++){
                            bb.add(null);
                        }
                        colNum=1;
                    }
                }
                aa.add(bb);
            }
    
            for (int i=0;i<length;i++){
    
                int rowSpan = 1;
    
                for (int j=0;j<aa.size();j++){
    
                    if (aa.get(j).get(i)==null){
                        continue;
                    }
    
                    if (j+1<aa.size()){
    
                        if (aa.get(j+1).get(i)!=null && aa.get(j).get(i).get("value").equals(aa.get(j+1).get(i).get("value"))
                                &&aa.get(j).get(i).get("colspan").equals(aa.get(j+1).get(i).get("colspan"))
                        ){
                            rowSpan++;
                        }else{
                            aa.get(j-rowSpan+1).get(i).put("rowSpan",rowSpan+"");
    
                            for (int a=1;a<rowSpan;a++){
                                aa.get(j-rowSpan+1+a).set(i,null);
                            }
                            rowSpan=1;
                        }
                    }else{
                        aa.get(j-rowSpan+1).get(i).put("rowSpan",rowSpan+"");
    
                        for (int a=1;a<rowSpan;a++){
                            aa.get(j-rowSpan+1+a).set(i,null);
                        }
                        rowSpan=1;
                    }
                }
            }
    
    
    
            List<List<Map<String,Boolean>>> mergeList = new ArrayList<>();
            for (int i=0;i<aa.size();i++){
                List<Map<String,Boolean>> list1 = new ArrayList<>();
                for (int j=0;j<aa.get(0).size();j++){
    
                    Map<String, String> map1 = aa.get(i).get(j);
    
                    if (map1!=null&&map1.size()>=3){
                        int rowSpan = Integer.parseInt(map1.get("rowSpan"));
                        int colspan = Integer.parseInt(map1.get("colspan"));
    
                        if (colspan>1){
    
                            aa.get(i).get(j).put("isColStart","true");
    
                            for (int a=1;a<colspan;a++){
                                Map<String,String> map = new HashMap<>();
                                map.put("isColContinue","true");
                                aa.get(i).set(j+a,map);
                            }
                        }
                        if (rowSpan>1){
    
                            aa.get(i).get(j).put("isRowStart","true");
    
                            if (colspan>1){
                                for (int a=1;a<rowSpan;a++){
                                    Map<String,String> map = new HashMap<>();
                                    map.put("isRowContinue","true");
                                    aa.get(i+a).set(j,map);
    
                                    for (int b=1;b<colspan;b++){
                                        Map<String,String> map2 = new HashMap<>();
                                        map2.put("isColContinue","true");
                                        map2.put("isRowContinue","true");
                                        aa.get(i+a).set(j+b,map2);
                                    }
                                }
                            }else{
                                for (int a=1;a<rowSpan;a++){
                                    Map<String,String> map = new HashMap<>();
                                    map.put("isRowContinue","true");
                                    aa.get(i+a).set(j,map);
                                }
                            }
                        }
    
                    }
                }
                mergeList.add(list1);
            }
    
            //基本信息表格
            XWPFTable infoTable = document.createTable(dataList==null?list.size():list.size()+dataList.size()/list.get(0).size(),list.get(0).size());
    
            for (int i=0;i<list.size();i++){
                //表格第一行
                XWPFTableRow infoTableRowOne = infoTable.getRow(i);
                for (int j=0;j<list.get(0).size();j++){
    
                    Map<String, String> map = aa.get(i).get(j);
    
                    if (map.get("isColStart")!=null){
                        infoTableRowOne.getCell(j).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);//这是起点
                    }
                    if (map.get("isRowStart")!=null){
                        infoTableRowOne.getCell(j).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART);//这是起点
                    }
                    if (map.get("isColContinue")!=null){
                        infoTableRowOne.getCell(j).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);//这是起点
                    }
                    if (map.get("isRowContinue")!=null){
                        infoTableRowOne.getCell(j).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE);//这是起点
                    }
                    if (map.get("value")!=null){
                        infoTableRowOne.getCell(j).setText(map.get("value"));
                    }
    
                    infoTableRowOne.getCell(j).getParagraphs().get(0).setAlignment(ParagraphAlignment.CENTER);  //设置水平居中
    
                    infoTableRowOne.getCell(j).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);  //设置垂直居中
                }
            }
            int row = list.size()-1;
            int col = 0;
            for (int i=0;i<dataList.size();i++){
                if (i%list.get(0).size()==0){
                    row++;
                    col = 0;
                }
                infoTable.getRow(row).getCell(col).setText(dataList.get(i));
                col++;
            }
        }
    }
    

     

    展开全文
  • 网上没查到相关能用的经验,于是自己去扒的poi官网查到的,这里做个记录,同时分享给大家,后面有时间会再写篇博客介绍poi替换word模板,涉及文本替换,插入表格,插入图片等。 设置表格边框样式 /** * 设置表格...

    Backgroud

    网上没查到相关能用的经验,于是自己去扒的poi官网查到的,这里做个记录,同时分享给大家,后面有时间会再写篇博客介绍poi替换word模板,涉及文本替换,插入表格,插入图片等。

    先贴张效果图

    在这里插入图片描述

    设置表格边框样式

    /**
     * 设置表格边框样式
     */
    private static void formatTableBolder(XWPFTable table) {
        // 双实线边框
        String bolderType = "double";
        CTTblBorders borders = table.getCTTbl().getTblPr().addNewTblBorders();
        // 设置内边框样式,默认单实线
    //        CTBorder hBorder = borders.addNewInsideH();
    //        hBorder.setVal(STBorder.Enum.forString(bolderType));
    //        hBorder.setSz(new BigInteger("1")); // 线条大小
    //        hBorder.setColor("000000"); // 设置颜色
    //
    //        CTBorder vBorder = borders.addNewInsideV();
    //        vBorder.setVal(STBorder.Enum.forString(bolderType));
    //        vBorder.setSz(new BigInteger("1"));
    //        vBorder.setColor("000000");
    
        // 设置上下左右外边框
        CTBorder lBorder = borders.addNewLeft();
        lBorder.setVal(STBorder.Enum.forString(bolderType));
        lBorder.setSz(new BigInteger("1"));
        lBorder.setColor("000000");
    
        CTBorder rBorder = borders.addNewRight();
        rBorder.setVal(STBorder.Enum.forString(bolderType));
        rBorder.setSz(new BigInteger("1"));
        rBorder.setColor("000000");
    
        CTBorder tBorder = borders.addNewTop();
        tBorder.setVal(STBorder.Enum.forString(bolderType));
        tBorder.setSz(new BigInteger("1"));
        tBorder.setColor("000000");
    
        CTBorder bBorder = borders.addNewBottom();
        bBorder.setVal(STBorder.Enum.forString(bolderType));
        bBorder.setSz(new BigInteger("1"));
        bBorder.setColor("000000");
    }
    

    设置表格居中

    这里是表格整体居中,不是表格内容居中。

    XWPFTable table = doc.createTable(2,5);
    // 设置表格居中
    table.setTableAlignment(TableRowAlign.CENTER);
    
    展开全文
  • 1、poiword表格的空格处可以自动识别出来并赋值为 " ",这一点比poi导入excel人性化(excel默认是跳过这个空格) 2、对于某些情况下,肉眼无法看出表格格式问题,但是程序可以识别出来,怀疑是表格后期人工修改过...
  • java使用poi操作.doc word模板替换,循环插入表格
  • Java Poi流根据Word模板插入相应的文本、表格和图片,并生成新的Word报告。文档提供相应的jar包和Word模板文件,表格支持动态添加数据,插入图片支持多种格式!
  • //默认:宋体(wps)/等线(office2016) 5号 两端对齐 单倍间距 runX.setText("舜发于畎亩之中, 傅说举于版筑之间, 胶鬲举于鱼盐之中,...
  • I'am a beginner in Apache POI and want to extend an existing table in the word template file with some rows.If I use that code below, the table will be extended with row bit the new row's cells create...
  • import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io...
  • 前言 因为工作任务填充word的模板,之前用的最多的是excel。 第一次操作word,面向百度开发...在表格里面插入表格 插入图片 未解决的问题: 在word里面插入附件 解决问题 XWPFRun 分段问题 例如我要替换word里面的${n
  • //melon-树形word进数据库 @RequestMapping(value = "/test_word", method = RequestMethod.POST, produces = {"application/json;charset=utf-8"}) @ResponseBody public String test_word(@RequestParam(value ...
  • Java poi Word模板数据替换需求说明设计思路功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • java POIword中的表格动态插入固定数据,以及插入不具体的数据 遇到个项目本来是用Execl导出的,相对简单,客户要求用Word导出,并按照他们给的模板进行导出; 从网上百度了一下,然后自己修改下,实现了对word中...
  • 工作常用的excel,word导出,需要引入下面的6个主要包,和主要包依赖的其他包 ,可以看下面的表格进行依赖下载引入 这下面的两张图是主要包对应涉及到功能,可以按需要进行引入,有些真的用不到的主要包可以不引入 ...
  • Java POI 导出Excel 表格

    千次阅读 2018-11-14 11:46:38
    最近给客户做了一个绩效计提的功能,需要能够在后台预览Excel表格数据,并添加导出功能,本身个人对Excel表的一些操作并不是特别熟练,所以统计表的结构对我个人来说算是比较复杂的了,涉及到多次的跨行处理,跨列...
  • 使用POI批量添加图片到word前言效果图第一步 添加依赖新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中...
  • Java POI导出word文件及生成表格

    千次阅读 2020-03-25 17:04:37
    HWPF是处理 Microsoft Word 97(-2007) .doc文件格式,它还为较旧的Word 6和Word 95文件格式... XWPF是处理 Word 2007 .docx文件格式,包含在poi-ooxml-XXX.jar中。 虽然HWPF和XWPF提供类似的功能,但目前两者...
  • 解决 Java poi 3.8等版本操作word插入图片不成功的问题 问题: 最近有一个需求是将Excel中的数据转换到word中,其中包括了文字和图片, 在使用poi 3.8向word中写入图片的时候发现怎么都不成功,具体过程如下: ...
  • 看了很多案例,感觉还是要封装一个标准的Word Java生成Util工具包,方便大家使用。 里面有很多地方需要自己去做处理,包括:字体大小,颜色,间距等等 。所以如果只是简单想生成一个word 可以使用这个Util,但是...
  • // 在文档末尾插入表格 rows行数 cols列数 XWPFTable createTable = document.createTable(rows, cols); // 设置宽度 CTTblPr tblPr = createTable.getCTTbl().getTblPr(); tblPr.getTblW().setType(STTblWidth.DXA)...
  • Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: 图表 1 Word生成结果: 图表 2 需要的jar包:(具体jar可自行去maven下载) Test测试类: import java.io.FileInputStream; import java.io...
  • java使用poi操作word插入图片、段落、表格准备工作创建word模板.docx文件编写模板格式.xml文件java上手poimaven依赖使用到的包具体应用对应封装方法 ----------图片插入指定位置操作图片操作使用到的工具类对应封装...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,656
精华内容 662
关键字:

javapoiword插入表格

java 订阅