• java 填充word中的表格


    package com.maple;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    
    public class WordReport1 {
        
        public Dispatch doc = null;
        public ActiveXComponent word;
        public  Dispatch documents;
        public  Dispatch selection;
        public Dispatch tables;
        public Dispatch table;
        public WordReport1(){
            word=new ActiveXComponent("Word.Application");
            word.setProperty("Visible", new Variant(false));
            documents=word.getProperty("Documents").toDispatch();
    //        doc=Dispatch.call(documents, "Open","d:/f.doc").toDispatch();
            
             doc = Dispatch.invoke(
                     documents,
                    "Open",
                    Dispatch.Method,
                    new Object[] { "d:\f.doc", new Variant(false),
                            new Variant(false) }, new int[1]).toDispatch();
            
            
            selection =word.getProperty("Selection").toDispatch();
            System.out.println(selection);
            tables = Dispatch.get(doc, "Tables").toDispatch();
            table = Dispatch.call(tables, "Item", new Variant(1)).toDispatch();
            a();        
        }
        public void a(){
            List<String[]> dataList =new ArrayList<String[]>();
            dataList.add(new String[]{"1","2"});
            dataList.add(new String[]{"11","21"});
            dataList.add(new String[]{"113","213"});
            Dispatch.call(selection, "HomeKey", new Variant(6));
            // 表格的所有行
            Dispatch rows = Dispatch.get(table, "Rows").toDispatch();
            // 填充表格
            Dispatch.call(selection, "MoveDown"); 
            for (int i =0; i<3;i++) {
                // 某一行数据
                String[] datas = (String[]) dataList.get(i);
    //             在表格中添加一行
                Dispatch.call(rows, "Add");
                // 填充该行的相关列
                for (int j = 0; j < datas.length; j++) {
                    // 得到单元格
                    Dispatch cell = Dispatch.call(table, "Cell",
                            new Variant(i+2), new Variant(j+1)).toDispatch();
                    System.out.println("i:"+i+" j:"+j);
                    // 选中单元格
                    Dispatch.call(cell, "Select");
                    // 设置格式
                    Dispatch font = Dispatch.get(selection, "Font").toDispatch();
                    Dispatch.put(font, "Bold", "0");
                    Dispatch.put(font, "Italic", "0");
                    // 输入数据
                    Dispatch.put(selection, "Text", datas[j]);
                }
            }        
            Dispatch.call(Dispatch.call(word, "WordBasic").getDispatch(),"FileSaveAs", "d:/ff.doc");
            
            if (doc != null)
                Dispatch.call(doc, "Close", new Variant(true));    
            
        }
        
        public static void main(String[] args) {
            WordReport1 wr=new WordReport1();
        }
    
            
            
    }

    name

    age

    插入数据后:

    name

    age

    1

    2

    11

    21

    113

    213

  • 相关阅读:
    js中常用的算法排序
    bootstrap Table的使用方法
    js中的继承
    js函数的节流与防抖
    along.js
    Vue组件通讯
    前端性能优化
    Vue路由学习心得
    Vue 2.0 路由全局守卫
    【前端】自适应布局方法总结
  • 原文地址:https://www.cnblogs.com/passer1991/p/3495856.html
Copyright © 2020-2023  润新知