您的位置:首页 > 编程语言 > Java开发

java 填充word中的表格

2013-12-28 22:10 375 查看
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: