精华内容
下载资源
问答
  • 上篇文章讲了生成Word时的cmd组件问题,这篇文章主要是将Aspose.Word的使用。...再进行生成没有表格即多段文字的时候格式会乱掉(如:一行中A112121拉可适当减肥 生成时会变成 第一行A112121 第二行拉可适当...

    上篇文章讲了生成Word时的cmd组件问题,这篇文章主要是将Aspose.Word的使用。它与Microsoft.Office.Interop.Word相比的优缺点如下:

    优点:1.生成速度快

               2.可同时多人进行操作

    缺点:1.再进行生成没有表格即多段文字的时候格式会乱掉(如:一行中A112121拉可适当减肥  生成时会变成 第一行A112121     第二行拉可适当减肥 )

    注意:Aspose.wrod是收费软件

    使用步骤:1.引用Aspose.wrod.dll组件

                      2.在word模板中加入书签(我习惯于加入书签,也可用其它方法)

                      3.程序中的id 要与书签名字数量一致(不然会出错)

    部分代码如下: 

    //载入模板   templatePath为Word模板路径
    Document doc = new Document(templatePath);
    DocumentBuilder builder = new DocumentBuilder(doc);

    //遍历书签

    foreach (Bookmark mark in doc.Range.Bookmarks)
     {

    if(mark!=null)

    {

    if(mark.Name=="txt_name")

    {

    //插入普通文字

    mark.Text = "";//将书签位置的内容清空
    builder.MoveToBookmark("txt_name");//移到书签位置
    builder.Font.Size = 5;//设置字体大小

    builder.Font.Bold = true;//字体加粗
    builder.ParagraphFormat.LineSpacing = 9;//设置段落行间距
    builder.Write("张三");//在书签部分填入名称

     

    //插入图片 imgPath图片路径

    builder.InsertImage(imgPath,

    RelativeHorizontalPosition.Margin, 1,//水平位置的间距

    RelativeVerticalPosition.Margin, 1, //相对垂直位置的间距

    10, 10,//图片长宽 

    WrapType.Inline//插入方式

    );

    //生成条形码

      #region  条形码
     Aspose.BarCode.BarCodeBuilder tiaoma = new Aspose.BarCode.BarCodeBuilder();

    tiaoma.CodeText = "12121212121";
    //Set the symbology type to Code128  
    tiaoma.SymbologyType = Aspose.BarCode.Symbology.Code128;
     //Create builder for document object  
     Aspose.Words.DocumentBuilder docBuilder = new Aspose.Words.DocumentBuilder(doc);
    //Insert the barCode image into document  
    docBuilder.InsertImage(tiaoma.BarCodeImage,
    Aspose.Words.Drawing.RelativeHorizontalPosition.Margin, 170,
    Aspose.Words.Drawing.RelativeVerticalPosition.Margin,
    35,
    170,
    45,
    Aspose.Words.Drawing.WrapType.TopBottom);
     #endregion

    //自动生成表格

    NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true); //拿到所有表格
     Aspose.Words.Tables.Table table = allTables[0] as Aspose.Words.Tables.Table; //拿到第一个表格
     Aspose.Words.Tables.Row r2 = new Aspose.Words.Tables.Row(doc);

    Aspose.Words.Tables.Cell c21 = new Aspose.Words.Tables.Cell(doc);
                                    c21.CellFormat.Width = 39.35;
                                    c21.CellFormat.Borders.Left.LineWidth = 1.5;
                                    c21.CellFormat.Borders.Top.LineWidth = 1;

    Aspose.Words.Paragraph p1 = new Aspose.Words.Paragraph(doc);
                                    p1.ParagraphFormat.Style.Font.Name = "仿宋_GB2312";
                                    p1.ParagraphFormat.Style.Font.Size = 14;
                                    p1.ParagraphFormat.Alignment = ParagraphAlignment.Center;
                                    p1.ParagraphFormat.LineSpacingRule = LineSpacingRule.Exactly;
                                    p1.ParagraphFormat.LineSpacing = 24f;

    p1.AppendChild(new Run(doc,认为));
                                                c21.AppendChild(p1);
                                                r2.Cells.Add(c21);

    table.Rows.Add(r2); //添加一行

    }

    }

      }

    //生成word  saveDocFile  word路径
                            doc.Save(saveDocFile);

    //生成pdf   pdf保存路径
                            doc.Save(savepdf, Aspose.Words.SaveFormat.Pdf);

     

    展开全文
  • Word文档中自动调整所有表格,省去一个一个的调整。使用方便
  • 根据Excel内容批量生成Word表格

    千次阅读 2020-08-13 17:09:07
    现在提供一种解决方法:将大量内容信息填到Excel中,然后利用下面软件批量生成Word表格。 步骤:①先制作映射文件(txt格式);②根据映射文件从Excl中读取数据,至Word中填写数据 下面是下载地址(附教程):...

    不知你是否有这样的需求:①要填写大量调查的卡片,或②要发放大量的邀请函;

    总之就是:要批量生成Word表格,

    你的方法是什么?现提供一种解决方案:先将大量内容信息填到Excel中,然后利用下面软件批量生成Word表格。

    步骤:①先制作映射文件(txt格式);②根据映射文件从Excl中读取数据,至Word中填写数据

     

    下面是软件下载地址(附教程):https://download.csdn.net/download/lengyeshuang/12697982

     

    简要说明:

    准备工作

    1、安装后是这样婶的(需net frame4.7.2+office2010):

    2、

    3、制定映射关系

    4、选择Excel表与输出文件夹,自动生成

    展开全文
  • 根据Word表格自动生成SQL数据库脚本的VBScript代码,用法请参见本人个人网站:http://www.hugesoft.net/。
  • Java中使用freemarker导出word文档 循环生成表格并且表格每行中都自动插入图片 就好像下面的效果,晚上很多例子都是单图片或者每个图片都是分开的,不是循环赋值的, 像下面的效果 ![图片说明]...
  • 该工具是用于自动生成数据库文档,由于表多,且写文档麻烦,特意整理成一工具。 支持所有支持 JDBC 的数据库,并简单抽象成一个自动化框架,使用者可以自行自定义连接,导出样式等。 另附带一个数据库比较工具,用于...
  • 主要介绍了Python使用win32com模块实现数据库表结构自动生成word表格的方法,结合实例形式分析了win32com模块下载、连接mysql、查询获取表结构以及使用win32com生成word表格的相关操作技巧,需要的朋友可以参考下
  • 网络上已经有可以用的类似工具,但大都不能自定义,且代码乱,该工具符合6大设计模式,可以作为sql导出word的框架,附带demo,导出后的word见我的博客,导出样式可修改。
  • 使用自动生成Word表格文件
  • 生成word模板。 编辑word使用占位符。双层列表循环表格, 群组里面在嵌套一个表格,无边框。其余正常占位即可。 以xml 格式保存,注意 ${xxxxx} 必须何在一起,不可以分开。 我这里用的是wps 保存的,(如果...

    生成word模板。

        编辑word使用占位符。双层列表循环表格, 群组里面在嵌套一个表格,无边框。其余正常占位即可。

       以xml 格式保存,注意  ${xxxxx} 必须何在一起,不可以分开。

        我这里用的是wps 保存的,(如果用的 word2003,以 2003xml格式保存,保存以 数据格式,保存xml形式。)

            

      

    保存之后,后缀名更改为 .ftl 格式。

      

    开始代码,获取模板,保存模板。

     String filePath = null;
            Integer len;
            Map<String, Object> map = DocUtil.getContractMap(tabList,contract);
            map.put("access",null == access ? "" : access);
            Writer out = null;
            File file = null;
            try {
                //创建
                Configuration configuration = new Configuration();
                //设置编码
                configuration.setDefaultEncoding("UTF-8");
                // 获得当前类路径
                file = new File(new PrintContract().getClass().getResource("").getPath());
                // ftl模板文件统一放至 test.ftl包下面
                configuration.setDirectoryForTemplateLoading(new File(file + "\\wordTemplate"));
                // 获取模板
                Template template = configuration.getTemplate("contract.ftl", "UTF-8");
    //            filePath = file + File.separator + "商标申请合同.doc";
                filePath = file + "\\wordTemplate"+ File.separator + "商标申请合同.doc";
                // 打印word到制定目录
                File  outFile = new File( filePath);
                if (!outFile.getParentFile().exists()) {
                    outFile.getParentFile().mkdirs();
                }
                // 将模板和数据模型合并生成文件
                out = new BufferedWriter(new OutputStreamWriter(
                        new FileOutputStream(outFile), "UTF-8"));
                // 生成文件
                template.process(map, out);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (out != null){
                    out.flush();
                    out.close();
                }

    作用使 word字段居中。

    /**
    * 获取字符串中文个数
    * @param str
    * @return
    */
    public static int getChineseNum(String str){
    return (str.getBytes().length - str.length()) / 2;
    }
    /**
    * 补全空格
    * @param str
    * @return
    */
    public static String getDocString(String str,int in){
    if (str.length() < in){
    in = in - getChineseNum(str) - str.length();
    for (int i=1; i < in; i++){
    str += " ";
    }
    }
    return str;
    }
    /**
    * 补全空格,居中word格式,
    */
    public static Map<String,Object> getContractMap(List<ContractFrom> tabList, Contract contract){
    
    // 合同编号
    map.put("contractNumber", null == contract.getContractNumber() ? "" : contract.getContractNumber());
    // 甲方 联 系 人
    map.put("firstPartyLinkman", null == contract.getFirstPartyLinkman() ? "" : contract.getFirstPartyLinkman());
    // 甲方联系电话
    map.put("firstPartyPhone", null == contract.getFirstPartyPhone() ? "" : contract.getFirstPartyPhone());
    // 乙方经办人
    map.put("partyBAgent", null == contract.getPartyBAgent() ? "" : contract.getPartyBAgent());
    // 乙方联系电话
    map.put("partyBPhone", null == contract.getPartyBPhone() ? "" : contract.getPartyBPhone());
    
    // 甲方公司名称 (14位,小于补空格满足)
    map.put("firstParty", null == contract.getFirstParty() ? "\t\t\t\t\t\t\t\t\t " : DocUtil.getDocString(contract.getFirstParty(),36));
    // 甲方 联 系 人 (三位小于补空格)
    map.put("firstPartyContactName", null == contract.getFirstPartyContactName() ? "\t\t\t\t\t\t\t\t " : DocUtil.getDocString(contract.getFirstPartyContactName(),34));
    // 甲方 地址
    map.put("firstPartyAddress", null == contract.getFirstPartyAddress() ? "\t\t\t\t\t\t\t\t\t " : DocUtil.getDocString(contract.getFirstPartyAddress(),36));
    // 甲方 签约日期
    map.put("firstPartyDate", null == contract.getFirstPartyDate() ? "\t\t\t\t\t\t\t\t " : DocUtil.getDocString(sf.format(contract.getFirstPartyDate()),32));
    // 甲方 邮箱账号
    map.put("firstPartyEmail", null == contract.getFirstPartyEmail() ? "\t\t\t\t\t\t\t\t " : DocUtil.getDocString(contract.getFirstPartyEmail(),32));
    
    //乙方 商标顾问
    map.put("partyBBrandConsultant", null == contract.getPartyBBrandConsultant() ? "" : contract.getPartyBBrandConsultant());
    // 乙方 地址
    map.put("partyBAddress", null == contract.getPartyBAddress() ? "" : contract.getPartyBAddress());
    // 乙方 签约日期
    map.put("partyBDate", null == contract.getPartyBDate() ? "" : sf.format(contract.getPartyBDate()));
    // 乙方 邮箱账号
    map.put("partyBEmail", null == contract.getPartyBEmail() ? "" : contract.getPartyBEmail());
    
    // 支付金额
    map.put("money", 0.0d == contract.getMoney() ? 0.0 : contract.getMoney());
    if ( null != tabList){
    map.put("tabList",tabList);
    }
    return map;
    }

     

    freemarker pom

    <!-- freemarker jar -->
    <!--<dependency>-->
    <!--<groupId>org.freemarker</groupId>-->
    <!--<artifactId>freemarker</artifactId>-->
    <!--<version>2.3.20</version>-->
    <!--</dependency>-->
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker-gae</artifactId>
        <version>2.3.25-incubating</version>
    </dependency>

     

    大功告成。

    展开全文
  • C# 自动生成word

    2017-10-13 11:52:59
    C# 生成word文档,包括页眉,页码,表格、图片、字体等的编辑
  • java操作word自动填写word表格

    千次阅读 2018-09-26 06:51:25
    于是想做一个工具,输入word文件所对应的xml格式文件,自动填写表格word其实可以转化成xml来处理,这一步可以手工用word把.doc格式文件另存为.xml格式。word表格中,每一行对应一个&lt;w:tr&gt;标签;...

    工作中常要填写各种word表格,其中内容有很多是重复的。于是想做一个工具,输入word文件所对应的xml格式文件,自动填写表格。

    word其实可以转化成xml来处理,这一步可以手工用word把.doc格式文件另存为.xml格式。word的表格中,每一行对应一个<w:tr>标签;每一个格子对应一个<w:tc>标签;格子中每行的内容,对应一个<w:t>标签。

    对于xml的处理,可以用dom4j来处理。主要思路为:

    1.将所要自动填写的内容,按key  -- value的格式,写进一个properties文件中。并通过程序将文件内容取出,放入到entityList当中。

    2.从xml根节点开始,遍历所有节点。若当前为w:tc节点,则获取该节点下所有w:t的内容,与所有entityList中所有key值对比。若有匹配,则在下一个w:tc格子中,新加一个w:t把该key值对应的value填入该表格中。

    3.生成新的xml格式文件

     

    所有代码如下:

    1.xml处理相关函数:

    package com.XML.test;
    
    import java.io.File;  
    import java.io.FileOutputStream;  
    import java.io.FileWriter;  
    import java.io.OutputStreamWriter;  
    import java.nio.charset.Charset;  
    import java.nio.charset.CharsetEncoder;  
    import java.util.ArrayList;
    import java.util.Iterator;  
    import java.util.List;  
    
    import javax.xml.soap.Node;
      
    import org.dom4j.Attribute;  
    import org.dom4j.Document;  
    import org.dom4j.Element;  
    import org.dom4j.io.OutputFormat;  
    import org.dom4j.io.SAXReader;  
    import org.dom4j.io.XMLWriter;  
    import org.junit.Test;  
      
    public class Demo01 {  
      
        @Test  
        public void test() throws Exception {  
      
            // 创建saxReader对象  
            SAXReader reader = new SAXReader();  
            // 通过read方法读取一个文件 转换成Document对象  
            Document document = reader.read(new File("./src/倪锐个人简历表格.xml"));  
            //获取根节点元素对象  
            Element node = document.getRootElement();  
            //遍历所有的元素节点
            
            List<Entity> entityList= GetPro.GetEntityList();
            int i=0;
            for(Entity a:entityList){
            	System.out.println("Entity" +i +a.getKey()+" "+a.getValue()); 
            	i++;
            }
            listNodes(node,entityList);  
      
            
            // 写入到一个新的文件中  
            writer(document);  
      
        }  
      
        /** 
         * 把document对象写入新的文件 
         *  
         * @param document 
         * @throws Exception 
         */  
        public void writer(Document document) throws Exception {  
            // 紧凑的格式  
            // OutputFormat format = OutputFormat.createCompactFormat();  
            // 排版缩进的格式  
            OutputFormat format = OutputFormat.createPrettyPrint();  
            // 设置编码  
            format.setEncoding("UTF-8");  
            // 创建XMLWriter对象,指定了写出文件及编码格式  
            // XMLWriter writer = new XMLWriter(new FileWriter(new  
            // File("src//a.xml")),format);  
            XMLWriter writer = new XMLWriter(new OutputStreamWriter(  
                    new FileOutputStream(new File("src//a.xml")), "UTF-8"), format);  
            // 写入  
            writer.write(document);  
            // 立即写入  
            writer.flush();  
            // 关闭操作  
            writer.close();  
        }  
      
        /** 
         * 遍历当前节点元素下面的所有(元素的)子节点 
         *  
         * @param node 
         */  
        public void listNodes(Element node,List<Entity>  fillList) {  
            System.out.println("当前节点的名称::" + node.getName());  
            // 获取当前节点的所有属性节点  
            List<Attribute> list = node.attributes();  
            // 遍历属性节点  
            for (Attribute attr : list) {  
                System.out.println(attr.getText() + "-----" + attr.getName()  
                        + "---" + attr.getValue());  
            }  
             
           if (!(node.getTextTrim().equals(""))) {  
        	   System.out.println("文本内容::::" + node.getText()); 
           }
            if (node.getName().equals("tc")){
            	System.out.println("----------------enter tc------------------");
            	for(Entity ent:fillList){
            		rightFil(node,ent.getKey(),ent.getValue());
            	}        	
            }
            // 当前节点下面子节点迭代器  
            Iterator<Element> it = node.elementIterator();  
            // 遍历  
            while (it.hasNext()) {  
                // 获取某个子节点对象  
                Element e = it.next();  
                // 对子节点进行遍历  
                listNodes(e,fillList);  
            }  
        }  
    
        //node is where you find key value
        public String merge(Element node,String tag,String ini){
        	StringBuffer strMerg=new StringBuffer(ini);
        	Iterator<Element> it = node.elementIterator();  
        	if(node.getName().equals(tag)){
                strMerg.append(node.getText());
    //            System.out.println("for strMerg-----" + strMerg);
    //            System.out.println("for node.getText()=" + node.getText());
        	}
            while (it.hasNext()) {  
                // 获取某个子节点对象  
                Element e = it.next();  
                // 对子节点进行遍历  
                strMerg=new StringBuffer(merge(e,tag,strMerg.toString())); 
                
            }
    //        System.err.println("strMerg=" + strMerg);
    
        	return strMerg.toString().replace(" ", "");
        }
        public String mergebackup(Element node,String tag){
        	try{
        		List<Element> sibList=node.elements("p");
                System.err.println("size=-----" + sibList.size());
    
        		
            	StringBuffer strMerg=new StringBuffer("");
            	int i=0;
                for (Element elm : sibList) {  
                    System.out.println("sibList-----" + elm.element("r").element("t").getText());
                    strMerg.append(elm.element("r").element("t").getText());
                    System.out.println("for strMerg =" + strMerg);
                    i++;
                    System.err.println("i======" + i);
                }
    //            System.out.println("strMerg-----" + strMerg);
                
                System.out.println("strMerg del blanks-----" + strMerg.toString().replace(" ", ""));
                return strMerg.toString().replace(" ", "");
        	}catch(NullPointerException e){
        		System.out.println("merge: no t in this tc -----" );
        		return "";
        	}
    
    
        }
        public void rightFil(Element node,String key,String value){//node 为tc级别,合并所有t标签
        	String strMerg=merge(node,"t","");
        	if(strMerg.equals(key)&&strMerg.length()>0){
            	System.out.println("***********************"+key+"found");
            	System.out.println(node.getName());
    
            	//int j=node.indexOf(node.getParent());
            	Element father=node;//self tc tag
            	System.out.println(father.getName());
           	
            	Element sib=(Element) father.selectSingleNode("following-sibling::w:tc[1]");//next tc tag
            	if(sib!= null){
            		insertT(sib,value);
            	}
            	else{
            		
            	}
            }
        }
        
        public void rightFilBackup(Element node,String key,String value){//node 为t级别,不能合并所有t标签
        	if(node.getText().replace(" ", "").equals(key)){
            	System.out.println("***********************"+key+"found");
            	System.out.println(node.getName());
    
            	//int j=node.indexOf(node.getParent());
            	Element father=(Element) node.getParent().getParent().getParent();//self tc tag
            	System.out.println(father.getName());
           	
            	Element sib=(Element) father.selectSingleNode("following-sibling::w:tc[1]");//next tc tag
            	insertT(sib,value);
            	
            }
        }   
        public void insertT(Element tc,String value){
            
            List<Attribute> list = tc.attributes();  
            // 遍历属性节点  
            for (Attribute attr : list) {  
                System.out.println(attr.getText() + "-----" + attr.getName()  
                        + "---" + attr.getValue());  
            } 
     
            System.out.println("tc.attribute(\"id\")========");
            System.out.println(tc.attribute("id"));  
     
    
        	Element adE=tc.element("p");
        	System.out.println("adEtest++++++++++++====="+adE.getName());               
        	System.out.println("adEtest++++++++++++=====END"+adE.getName());  
        	Element r=adE.addElement("w:r");            	
        	Element rPr=r.addElement("w:rPr");
        	rPr.addElement("w:rFonts hint=\"eastAsia\"");
        	rPr.addElement("w:sz val=\"24\"");
        	Element t=r.addElement("w:t");
        	t.setText(value);
        }
        
        /** 
         * 介绍Element中的element方法和elements方法的使用 
         *  
         * @param node 
         */  
        public void elementMethod(Element node) {  
            // 获取node节点中,子节点的元素名称为西游记的元素节点。  
            Element e = node.element("西游记");  
            // 获取西游记元素节点中,子节点为作者的元素节点(可以看到只能获取第一个作者元素节点)  
            Element author = e.element("作者");  
      
            System.out.println(e.getName() + "----" + author.getText());  
      
            // 获取西游记这个元素节点 中,所有子节点名称为作者元素的节点 。  
      
            List<Element> authors = e.elements("作者");  
            for (Element aut : authors) {  
                System.out.println(aut.getText());  
            }  
      
            // 获取西游记这个元素节点 所有元素的子节点。  
            List<Element> elements = e.elements();  
      
            for (Element el : elements) {  
                System.out.println(el.getText());  
            }  
      
        }  
      
    }  
    

    2.自动填写格式设定:(key姓名--value张三) 

    package com.XML.test;
    
    public class Entity {
    	String key;
    	String value;
    
    	public String getKey() {
    		return key;
    	}
    
    	public void setKey(String key) {
    		this.key = key;
    	}
    
    	public String getValue() {
    		return value;
    	}
    
    	public void setValue(String value) {
    		this.value = value;
    	}
    
    }

    3.从properties文件读出到entityList程序 

    package com.XML.test;
    
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.List;
    import java.util.Properties;
    
    import org.dom4j.DocumentException;
    
    //关于Properties类常用的操作
    public class GetPro {
    
      
      //读取Properties的全部信息
      public static List GetEntityList() throws IOException {
    	  List<Entity> entityList= new ArrayList();
          Properties pps = new Properties();
          InputStream in = new BufferedInputStream(new FileInputStream("./src/com/XML/test/properties"));
          pps.load(new InputStreamReader( in, "utf-8"));
          Enumeration en = pps.propertyNames(); //得到配置文件的名字
          
          while(en.hasMoreElements()) {
              String strKey = (String) en.nextElement();
              String strValue = pps.getProperty(strKey);
              Entity entity =new Entity();
              entity.setKey(strKey);
              entity.setValue(strValue);
              entityList.add(entity);
              System.out.println(strKey + "=" + strValue);
              
              
          }
    	return entityList;
          
      }
      public static void main(String[] args) throws DocumentException,
      IOException {
       Entity entity_1 =new Entity();
        List<Entity> entityList_1=GetEntityList();
        for(int i=0;i<entityList_1.size();i++){
         entity_1=entityList_1.get(i);
         System.out.println(entity_1.getKey() + "=" + entity_1.getValue());
        } 
       
      }
    
      }
    

    4.propeties文件 

    #Update long name
    #Sat Sep 22 00:57:39 CST 2018
    姓名=牛逼
    性别=女
    出身年月=1987年7月
    身份证号码=518209387428982347
    民族=汗
    政治面貌=中共党员
    婚姻状况=已婚
    健康状况=良好
    身高=175
    现户口所在地=北京
    所学专业=英语
    学历=本科
    最后毕业学校=清华大学
    毕业时间=2017年8月
    技术职称=高级工程师
    现工作单位=百度
    参加工作时间=2017年10月
    现从事专业=搬砖
    

     

    展开全文
  • 工程地址:https://github.com/zheng-chang-wei/word package com.example.demo1.poi; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileOutputStream; public ...
  • 使用VC 6.0实现自动生成Word表格

    千次阅读 热门讨论 2008-11-30 10:07:00
    最近在VC6.0 环境下开发一个管理系统,界面开发花了不少功夫却感觉华而不实,自动生成word表格的功能实现了,倒觉得蛮实用的(1)首先,向你的项目中添加word 2003类型库:方法是在MFC ClassWizard中点击按钮Add ...
  • Java根据ftl模板生成表格复杂性word文档,工程可直接导入eclipse中执行的。
  • 利用python-docx编写脚本,运行脚本-输入个人信息-自动生成两个word模板 脚本用到的python-docx库的功能: 1、创建与合并表格 2、添加文本 3、设置文本属性(如大小、加粗、下划线、居中等) 安装python-docx: pip ...
  • 自动生成Word文档

    2012-08-20 22:01:00
    VC操作word表格的小程序,包含了word表格的常用操作
  • Sub 表格根据窗口自动调整() Dim oDoc As Document Dim oTable As Table Set oDoc = Documents.Open("C:\Users\Administrator\Desktop\安全加固手册.docx") For Each oTable In oDoc.Tables oTable.AutoFitBehavior ...
  • 根据word的xml模板生成word文件
  • 如何用java生成动态word表格,以及在表格中插入图片是一个难题,花了两天时间做出来的,希望对大家有帮助 需要jar包:iText-2.1.7.jar, iText-rtf-2.1.7.jar, iTextAsian.jar和jxl.jar 注意前两个jar包的版本要能...
  • Pandas 根据dataframe表自动生成word

    千次阅读 2018-12-22 15:44:59
    如果能够根据表格项目内容自动生成每一户的情况,能够省去查找政策的时间。因时间紧迫,所以代码没有用类和函数进行优化,未来如果有时间再将其优化。 基本思路:首先将每户享受的政策,按着户编号相同的原则,...
  • word文档如何自动生成目录

    万次阅读 热门讨论 2009-03-24 19:51:00
    Word提供了自动生成目录的功能,使目录的制作变得非常简便,而且在文档发生了改变以后,还可以利用更新目录的功能来适应文档的变化。 一、创建标题目录 Word一般是利用标题或者大纲级别来创建目录的,这对那些用...
  • #建一张表格 table.Rows[ 0 ].Cells[ 0 ].Range.Text = u"列" table.Rows[ 0 ].Cells[ 1 ].Range.Text = u"类型" table.Rows[ 0 ].Cells[ 2 ].Range.Text = u"默认值" table.Rows[ 0 ].Cells[ 3 ].Range.Text...
  • 用Delphi开发的,可以根据excel需求跟踪矩阵,按word或excel模板自动转换成需求说明书、测试用例或其它类型的文档的工具!通过ole方式来操作word和excel,是作者寻找了众多网上资料包括官方网站的资料才开发出来。...
  • 很不错的vc对word操作代码,可以自动生成word表格,并导入数据、合并单元格、编辑眉页等。
  • JAVA根据数据库表生成word表格文档

    千次阅读 2017-06-08 13:22:58
    * @Description: 设置表格总宽度与水平对齐方式 */ public void setTableWidthAndHAlign(XWPFTable table, String width, STJc.Enum enumValue) { CTTblPr tblPr = getTableCTTblPr(table); CTTblWidth ...
  • word中图标和表格目录的自动生成

    万次阅读 2009-04-03 14:40:00
    今天由于写文档需要,要在word文档中添加图表和表格的目录,在网上搜索了一下,发现采用以下的方法可以简单实现。文档的目录生成:一. 定义目录标题的样式:先选定文章中的任意一篇的标题,对标题进行字体、字号、...
  • 表格原本的type属性是autofit(自动调整),如果需要固定表格的宽度,需要关闭自动重调尺寸适应内容,java代码为 CTTblLayoutType type = infoTable.getCTTbl().getTblPr().addNewTblLayout(); type.setType...
  • 项目中用到生成word报表,报表中有表格的合并 、页眉、表格中会有报表图片。然后查找了网上的资料,利用echar生成柱状图,然后已base64串的方式发给后台,在后台解析成字节数组 ,利用poi生成word文档中。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,031
精华内容 10,412
关键字:

word根据内容自动生成表格