- 浏览: 109296 次
- 性别:
- 来自: 北京
文章分类
最新评论
package audit.pub.word;
import java.util.*;
import com.jacob.activeX.ActiveXComponent;//加入activeX控件包
import com.jacob.com.Dispatch; //加入接口包
import com.jacob.com.Variant;
/**
* <p>标题: word文档</p>
* <p>描述: word文档的定义</p>
* <p>版权: Copyright (c) 2004</p>
* <p>公司:</p>
* @author wl
* @version 1.0
*/
public class WordDocument implements java.io.Serializable
{
/**word应用*/
private ActiveXComponent app;
/**文档集对象*/
private Object oDocs;
/**Word运行时是否可见*/
private boolean tVisible = false;
/**文档对象*/
private Object oDoc;
/**tSaveOnExit*/
private boolean tSaveOnExit = false;
/**文档名称*/
private String docName;
/**选择区*/
private Object oSelection;
/**表格集*/
private Object oTables;
/**字体*/
private Object oFont;
/**段落对齐格式*/
private Object oAlignment;
/**页面设置*/
Object oPageSetup;
/**文档字体定义*/
private WordFont font;
/**段落样式*/
private WordStyle style;
/**页边距--上*/
private String topMargin = "2.54";
/**页边距--下*/
private String bottomMargin = "2.54";
/**页边距--左*/
private String leftMargin = "3.17";
/**页边距--右*/
private String rightMargin = "3.17";
/**页眉*/
private String headerDistance = "1.5";
/**页脚*/
private String footerDistance = "1.75";
public WordDocument()
throws Exception
{
this.init();
}
private void init()
throws Exception
{
this.app = new ActiveXComponent("Word.Application");
this.app.setProperty("Visible", new Variant(tVisible));
this.oDocs = app.getProperty("Documents").toDispatch();
this.docName = "";
this.font = WordFont.getInstance();
this.style = WordStyle.getInstance();
}
/**
* 获取Word版本号
* @return String
*/
public String getVersion()
{
return this.app.getProperty("version").toString();
}
/**
* 判断当前系统的word是否为2000版本
* @return boolean
*/
public boolean isWord2000()
{
String ver = getVersion();
if (ver != null && ver.length() > 2)
ver = ver.substring(0, 3);
if (ver.equals("9.0"))
return true;
else
return false;
}
/**
* 打开/新建一文档时初始对象
* @throws Exception
*/
private void initObj()
throws Exception
{
this.oSelection = app.getProperty("Selection").toDispatch();
this.oTables = Dispatch.get(oDoc, "Tables").toDispatch();
this.oAlignment = Dispatch.get(this.oSelection, "ParagraphFormat").toDispatch();
this.oFont = Dispatch.get(this.oSelection, "Font").toDispatch();
this.oPageSetup = Dispatch.get(oDoc, "PageSetup").toDispatch();
}
/**
* 新建文档
* @param sDocName word文档名称
* @throws Exception
*/
public void New(String sDocName)
throws Exception
{
this.docName = sDocName;
this.oDoc = Dispatch.call(oDocs, "Add", "").toDispatch();
this.initObj();
}
/**
* 打开一文档
* @param sDocName word文档名称
* @throws Exception
*/
public void Open(String sDocName)
throws Exception
{
this.docName = sDocName;
this.oDoc = Dispatch.call(oDocs, "Open", sDocName).toDispatch();
this.initObj();
}
/**
* 创建一表格
* @param index 表格在文档的当前所有表格中的顺序号
* @param rows 表格行数
* @param cols 表格列数
* @throws Exception
* @return 表格
*/
public WordTable createTable(int index, int rows, int cols)
throws Exception
{
Object range = Dispatch.get(this.oSelection, "Range").toDispatch();
Object oTable = Dispatch.call(oTables, "Add", range, String.valueOf(rows), String.valueOf(cols)).toDispatch();
if (!this.isWord2000()) Dispatch.put(oTable, "Style", "网格型");
Object item = Dispatch.call(oTables, "Item", String.valueOf(index)).toDispatch();
WordTable table = WordTable.getInstance();
table.setOItem(item);
table.setOSelection(this.oSelection);
table.setOAlignment(this.oAlignment);
table.setOFont(this.oFont);
return table;
}
/**
* 设置字体
* @param cWFont word字体
* @throws Exception
*/
public void setFont(WordFont cWFont)
throws Exception
{
this.font = cWFont;
setMyFont();
}
/**
* 设置字体
* @throws Exception
*/
private void setMyFont()
throws Exception
{
Dispatch.put(oFont, "Name", this.font.getName());
Dispatch.put(oFont, "Size", this.font.getSize());
if (this.font.isIsItalic()) Dispatch.put(oFont, "Italic", "1");
else Dispatch.put(oFont, "Italic", "0");
if (this.font.isIsBold()) Dispatch.put(oFont, "Bold", "1");
else Dispatch.put(oFont, "Bold", "0");
if (this.font.isIsUnderline()) Dispatch.put(oFont, "Underline", "1");
else Dispatch.put(oFont, "Underline", "0");
}
/**
* 设置段落样式
* @param style word字体
* @throws Exception
*/
public void setStyle(WordStyle style)
throws Exception
{
this.style = style;
this.setMyStyle();
}
/**
* 设置样式
* @throws Exception
*/
private void setMyStyle()
throws Exception
{
if (this.style.getIAlignment() != -1)
Dispatch.put(oAlignment, "Alignment", String.valueOf(this.style.getIAlignment()));
}
/**
* 在当前光标处输入文字
* @param text 要输入的文字
* @throws Exception
*/
public void write(String text)
throws Exception
{
Dispatch.call(this.oSelection, "TypeText", text);
}
/**
* 在当前光标处输入文字,然后换行
* @param text String 文本
* @throws Exception 例外
*/
public void writeln(String text)
throws Exception
{
write(text + "\r\n");
}
/**
* 在当前光标处输出换行符
* @param rowCount int 换行数
* @throws Exception 例外
*/
public void printEnter(int rowCount)
throws Exception
{
for (int i = 0; i < rowCount; i++)
write("\r\n");
}
/**
* 换行
* @throws Exception
*/
public void enter()
throws Exception
{
Dispatch.call(this.oSelection, "TypeParagraph");
}
/**
* 光标下移一个字符
* @throws Exception
*/
public void moveNextChar()
throws Exception
{
this.moveNextNChar(1);
}
/**
* 光标下移N个字符
* @param count 字符个数
* @throws Exception
*/
public void moveNextNChar(int count)
throws Exception
{
Dispatch.call(this.oSelection, "MoveRight", "1", String.valueOf(count));
}
/**
* 光标上移N个字符
* @param count 字符个数
* @throws Exception
*/
public void moveBackNChar(int count)
throws Exception
{
Dispatch.call(this.oSelection, "MoveLeft", "1", String.valueOf(count));
}
/**
* 光标下移一个单词
* @throws Exception
*/
public void moveNextWord()
throws Exception
{
this.moveNextNWord(1);
}
/**
* 光标下移N个单词
* @param count 单词个数
* @throws Exception
*/
public void moveNextNWord(int count)
throws Exception
{
Dispatch.call(this.oSelection, "MoveRight", "2", String.valueOf(count));
}
/**
* 光标上移N个单词
* @param count 单词个数
* @throws Exception
*/
public void moveBackNWord(int count)
throws Exception
{
Dispatch.call(this.oSelection, "MoveLeft", "2", String.valueOf(count));
}
/**
* 光标下移一行
* @throws Exception
*/
public void moveNextLine()
throws Exception
{
this.moveNextNLine(1);
}
/**
* 光标下移N行
* @param count 行数
* @throws Exception
*/
public void moveNextNLine(int count)
throws Exception
{
Dispatch.call(this.oSelection, "MoveRight", "3", String.valueOf(count));
}
/**
* 光标上移N行
* @param count 行数
* @throws Exception
*/
public void moveBackNLine(int count)
throws Exception
{
Dispatch.call(this.oSelection, "MoveLeft", "3", String.valueOf(count));
}
/**
* 光标移动到当前行的最前
* @throws Exception
*/
public void moveLineHome()
throws Exception
{
Dispatch.call(this.oSelection, "MoveLeft", "3", "1");
}
/**
* 光标移动到当前行的最后
* @throws Exception
*/
public void moveLineEnd()
throws Exception
{
Dispatch.call(this.oSelection, "MoveRight", "3", "1");
}
/**
* 光标移动到文档最前
* @throws Exception
*/
public void moveDocHome()
throws Exception
{
Dispatch.call(this.oSelection, "HomeKey", "6");
}
/**
* 光标移动到文档最后
* @throws Exception
*/
public void moveDocEnd()
throws Exception
{
Dispatch.call(this.oSelection, "EndKey", "6");
}
/**
* 换页
* @throws Exception
*/
public void nextPage()
throws Exception
{
Dispatch.call(this.oSelection, "InsertBreak");
}
/**
* 保存文档
* @throws Exception
*/
public void save()
throws Exception
{
this.saveAs(this.docName);
}
/**
* 另存文档
* @param sDocName 另存文件名称
* @throws Exception
*/
public void saveAs(String sDocName)
throws Exception
{
Dispatch.call(this.oDoc, "SaveAs", sDocName);
}
/**
* 退出Word
*/
public void close()
{
Dispatch.call(this.oDoc, "Close", new Variant(tSaveOnExit));
app.invoke("Quit", new Variant[]
{});
}
public WordFont getFont()
{
return font;
}
public WordStyle getStyle()
{
return style;
}
private static void test1(int mm)
{
WordDocument myDoc = null;
try
{
myDoc = new WordDocument();
myDoc.New("d:/work_lizq.doc");
long d1 = new Date().getTime();
//System.out.print("生成中.");
WordFont myFont = myDoc.getFont();
WordStyle myStyle = myDoc.getStyle();
for (int i = 1; i <= mm; i++)
{
myFont.setIsBold(true);
myFont.setName("仿宋_GB2312");
myFont.setSize("15");
myDoc.setFont(myFont);
myStyle.setIAlignment(WordStyle.ALIGN_CENTER);
myDoc.setStyle(myStyle);
myDoc.write("中国建设银行审计工作底稿 —— 工作记录\r\n\r\n");
myFont.setSize("12");
myFont.setIsBold(false);
myDoc.setFont(myFont);
myStyle.setIAlignment(WordStyle.ALIGN_LEFT);
myDoc.setStyle(myStyle);
myDoc.write("审计项目:XXXX 总份数:XXXX 索引号:XXXX\r\n");
myDoc.write("编 制 人:王林 编制日期:2008/07/19 共X页 第X页\r\n");
WordTable myTable = myDoc.createTable(i, 12, 2);
myTable.setColWidth(1, 70);
myTable.setColWidth(2, 350);
Thread.sleep(600);
myStyle.setIAlignment(WordStyle.ALIGN_CENTER);
myStyle.setIVerticalAlignment(WordStyle.VALIGN_CENTER);
myTable.setColStyle(1, myStyle);
myTable.splitCell(6, 1, 1, 2);
myTable.splitCell(6, 2, 5, 1);
myTable.splitCell(6, 3, 5, 1);
myTable.moveToCell(1, 1);
myDoc.write("审计分项");
myTable.moveToCell(2, 1);
myDoc.write("测试目标");
myTable.moveToCell(3, 1);
myDoc.write("取证对象");
myTable.moveToCell(4, 1);
myDoc.write("样本/总体");
myTable.moveToCell(5, 1);
myDoc.write("测\r\n试\r\n过\r\n程");
myTable.moveToCell(6, 1);
myDoc.write("审\r\n计\r\n发\r\n现");
myTable.moveToCell(6, 2);
myDoc.write("状\r\n况");
myTable.moveToCell(7, 2);
myDoc.write("依\r\n据");
myTable.moveToCell(8, 2);
myDoc.write("差\r\n异");
myTable.moveToCell(9, 2);
myDoc.write("影\r\n响");
myTable.moveToCell(10, 2);
myDoc.write("原\r\n因");
myTable.moveToCell(11, 1);
myDoc.write("审计\r\n建议");
myTable.moveToCell(12, 1);
myDoc.write("情况记录\r\n索引");
myTable.moveToCell(13, 1);
myDoc.write("备注");
myTable.moveToCell(14, 1);
myDoc.write("附件");
myTable.moveToCell(15, 1);
myDoc.write("主审人\r\n复核意见");
myTable.moveToCell(15, 2);
myDoc.write("\r\n 签名: XXXX年XX月XX日");
myTable.moveToCell(16, 1);
myDoc.write("审计组长\r\n复核意见");
myTable.moveToCell(16, 2);
myDoc.write("\r\n 签名: XXXX年XX月XX日");
myDoc.moveDocEnd();
if (i < (mm))
myDoc.nextPage();
//System.out.print(i);
}
myDoc.save();
long d2 = new Date().getTime();
//System.out.println("Time:"+((d2-d1))+"mS");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
myDoc.close();
}
}
public static void main(String[] args)
{
int tt = Integer.parseInt(args[0]);
test1(tt);
}
public String getBottomMargin()
{
return bottomMargin;
}
public void setBottomMargin(String bottomMargin)
{
if (bottomMargin == null)return;
this.bottomMargin = bottomMargin;
Dispatch.put(oPageSetup, "BottomMargin", bottomMargin);
}
public String getFooterDistance()
{
return footerDistance;
}
public void setFooterDistance(String footerDistance)
{
if (footerDistance == null)return;
this.footerDistance = footerDistance;
Dispatch.put(oPageSetup, "FooterDistance", footerDistance);
}
public String getHeaderDistance()
{
return headerDistance;
}
public void setHeaderDistance(String headerDistance)
{
if (headerDistance == null)return;
this.headerDistance = headerDistance;
Dispatch.put(oPageSetup, "HeaderDistance", headerDistance);
}
public String getLeftMargin()
{
return leftMargin;
}
public void setLeftMargin(String leftMargin)
{
if (leftMargin == null)return;
this.leftMargin = leftMargin;
Dispatch.put(oPageSetup, "LeftMargin", leftMargin);
}
public String getRightMargin()
{
return rightMargin;
}
public void setRightMargin(String rightMargin)
{
if (rightMargin == null)return;
this.rightMargin = rightMargin;
Dispatch.put(oPageSetup, "RightMargin", rightMargin);
}
public String getTopMargin()
{
return topMargin;
}
public void setTopMargin(String topMargin)
{
if (topMargin == null)return;
this.topMargin = topMargin;
Dispatch.put(oPageSetup, "TopMargin", topMargin);
}
}
===============================================================================================
================================================================================================
package audit.pub.word;
/**
* <p>标题: word字体</p>
* <p>描述: word字体定义</p>
* <p>版权: Copyright (c) 2004</p>
* <p>公司:</p>
* @author lizq
* @version 1.0
*/
public class WordFont implements java.io.Serializable
{
/**字体*/
private String name = "宋体";
/**字号*/
private String size = "15";
/**是否倾斜*/
private boolean isItalic = false;
/**是否加粗*/
private boolean isBold = false;
/**是否下划线*/
private boolean isUnderline = false;
private WordFont()
{}
public static WordFont getInstance()
{
return new WordFont();
}
public boolean isIsBold()
{
return isBold;
}
public boolean isIsItalic()
{
return isItalic;
}
public boolean isIsUnderline()
{
return isUnderline;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void setIsUnderline(boolean isUnderline)
{
this.isUnderline = isUnderline;
}
public void setIsItalic(boolean isItalic)
{
this.isItalic = isItalic;
}
public void setIsBold(boolean isBold)
{
this.isBold = isBold;
}
public String getSize()
{
return size;
}
public void setSize(String size)
{
this.size = size;
}
}
==============================================================================
=========================================================
==================================================================================
package audit.pub.word;
/**
* <p>标题: word样式</p>
* <p>描述: word样式定义</p>
* <p>版权: Copyright (c) 2004</p>
* <p>公司: 泰利特青岛软件研究所</p>
* @author lizq
* @version 1.0
*/
public class WordStyle implements java.io.Serializable
{
/**对齐方式(水平居中)*/
public static final int ALIGN_CENTER = 1;
/**对齐方式(垂直 居中)*/
public static final int VALIGN_CENTER = 1;
/**对齐方式(右对齐)*/
public static final int ALIGN_RIGHT = 2;
/**对齐方式(水平左对齐)*/
public static final int ALIGN_LEFT = 3;
/**对齐方式(垂直下对齐)*/
public static final int VALIGN_LEFT = 3;
/**对齐方式(自适应)*/
public static final int ALIGN_AUTO = 4;
/**水平对齐方式:默认为左对齐*/
private int iAlignment = -1;
/**垂直对齐方式:默认为上对齐*/
private int iVerticalAlignment = -1;
private WordStyle()
{}
public static WordStyle getInstance()
{
return new WordStyle();
}
public int getIAlignment()
{
return iAlignment;
}
public void setIAlignment(int iAlignment)
{
this.iAlignment = iAlignment;
}
public int getIVerticalAlignment()
{
return iVerticalAlignment;
}
public void setIVerticalAlignment(int iVerticalAlignment)
{
this.iVerticalAlignment = iVerticalAlignment;
}
}
==========================================================================
=============================================================
==========================================================================
package audit.pub.word;
import com.jacob.com.*;
/**
* <p>标题: word表格</p>
* <p>描述: word表格定义</p>
* <p>版权: Copyright (c) 2004</p>
* <p>公司: </p>
* @author lizq
* @version 1.0
*/
public class WordTable implements java.io.Serializable
{
/**选择区*/
private Object oSelection;
/**段落对齐格式*/
private Object oAlignment;
/**字体*/
private Object oFont;
/**item*/
private Object oItem;
// /**行数*/
// private int iRows = 0;
// /**列数*/
// private int iCols = 0;
private WordTable()
{}
protected static WordTable getInstance()
{
return new WordTable();
}
/**
* 设置表格某一行的高度
* @param index 行序号
* @param height 高度
* @throws Exception
*/
private void setRowHeight(int index, int height)
throws Exception
{
// if((index<0)||(index>this.iRows)) return;
Object oRows = Dispatch.call(oItem, "Rows", String.valueOf(index)).toDispatch();
Dispatch.put(oRows, "Height", String.valueOf(height));
}
/**
* 设置表格某一列的宽度
* @param index 列序号
* @param width 宽度
* @throws Exception
*/
public void setColWidth(int index, int width)
throws Exception
{
// if((index<0)||(index>this.iCols)) return;
Object Columns = Dispatch.call(oItem, "Columns", String.valueOf(index)).toDispatch();
Dispatch.put(Columns, "PreferredWidth", String.valueOf(width));
}
/**
* 设置表格的某一列的对齐方式
* @param index 列序号
* @param style 样式
* @throws Exception
*/
public void setColStyle(int index, WordStyle style)
throws Exception
{
// Object Columns = Dispatch.call(oItem,"Columns",String.valueOf(index)).toDispatch();
// Dispatch.call(Columns,"Select");
this.moveToCell(1, index);
Dispatch.call(this.oSelection, "SelectColumn");
Object cells = Dispatch.get(this.oSelection, "Cells").toDispatch();
int iAlignment = style.getIAlignment();
int iVerticalAlignment = style.getIVerticalAlignment();
if (iAlignment != -1)
Dispatch.put(this.oAlignment, "Alignment", String.valueOf(iAlignment));
if (iVerticalAlignment != -1)
Dispatch.put(cells, "VerticalAlignment", String.valueOf(iVerticalAlignment));
}
/**
* 设置表格的某一列的字体
* @param index 列序号
* @param font 字体
* @throws Exception
*/
public void setColFont(int index, WordFont font)
throws Exception
{
this.moveToCell(1, index);
Dispatch.call(this.oSelection, "SelectColumn");
Dispatch.put(oFont, "Name", font.getName());
Dispatch.put(oFont, "Size", font.getSize());
if (font.isIsItalic()) Dispatch.put(oFont, "Italic", "1");
else Dispatch.put(oFont, "Italic", "0");
if (font.isIsBold()) Dispatch.put(oFont, "Bold", "1");
else Dispatch.put(oFont, "Bold", "0");
if (font.isIsUnderline()) Dispatch.put(oFont, "Underline", "1");
else Dispatch.put(oFont, "Underline", "0");
}
/**
* 拆分表格的某一单元格
* @param xCell 行号
* @param yCell 列号
* @param iRow 拆分为几行
* @param iCol 拆分为几列
* @throws Exception
*/
public void splitCell(int xCell, int yCell, int iRow, int iCol)
throws Exception
{
// if((xCell<0)||(xCell>this.iRows)) return;
// if((yCell<0)||(yCell>this.iCols)) return;
Object cell = Dispatch.call(oItem, "Cell", String.valueOf(xCell), String.valueOf(yCell)).toDispatch();
Dispatch.call(cell, "Split", String.valueOf(iRow), String.valueOf(iCol));
}
/**
* 将光标移到表格的某一单元格上
* @param xCell 行号
* @param yCell 列号
* @throws Exception
*/
public void moveToCell(int xCell, int yCell)
throws Exception
{
// if((xCell<0)||(xCell>this.iRows)) return;
// if((yCell<0)||(yCell>this.iCols)) return;
Object cell = Dispatch.call(oItem, "Cell", String.valueOf(xCell), String.valueOf(yCell)).toDispatch();
Dispatch.call(cell, "Select");
}
// public int getICols() {
// return iCols;
// }
// public void setICols(int iCols) {
// this.iCols = iCols;
// }
// public int getIRows() {
// return iRows;
// }
// public void setIRows(int iRows) {
// this.iRows = iRows;
// }
public Object getOItem()
{
return oItem;
}
public void setOItem(Object oItem)
{
this.oItem = oItem;
}
public Object getOSelection()
{
return oSelection;
}
public void setOSelection(Object oSelection)
{
this.oSelection = oSelection;
}
public Object getOAlignment()
{
return oAlignment;
}
public void setOAlignment(Object oAlignment)
{
this.oAlignment = oAlignment;
}
public Object getOFont()
{
return oFont;
}
public void setOFont(Object oFont)
{
this.oFont = oFont;
}
}
发表评论
-
解决excel文字读取错误 可能某些数字格式已丢失
2018-12-29 09:11 619ServletOutputStream ... -
struts上传下载多个文件
2015-04-30 11:24 513实例: 第一步导入包: commons-fileupload- ... -
jdcob--Could not initialize class com.jacob.com.ComThread
2015-02-27 09:00 19081--dll 文件 放在tomcat/bin 下面 ... -
ntko打印公章
2014-12-02 09:04 567//TANGER_OCX_OBJ.ActiveDocument ... -
hibernate 映射文件生成数据库表脚本
2011-03-28 16:20 865import org.hibernate.cfg.Config ... -
java换肤改变页面肤色
2011-03-02 14:05 995import java.io.IOException;impo ... -
java 过滤未登录的用户
2011-03-02 14:03 1103<filter> <filte ... -
java 在线用户统计
2011-03-02 13:47 1631web.xml <listener> ... -
java 过滤乱码
2011-03-02 13:44 948web.xml <filter> <f ... -
jacob资料
2011-02-13 23:48 1875JACOB是一个JAVA到微软的COM接口的桥梁。使用JACO ... -
hibernate 查询乱码
2010-10-06 15:12 748在使用HQL进行查询时,如果查询语句中存在中文字符,则会有乱码 ... -
java 多线程代码
2010-09-30 12:44 1490package com.jacob.activeX; imp ... -
过滤未登录的用户
2010-09-15 10:59 880package com.filter; import jav ... -
jacob操作word增加表格 行列
2010-08-10 09:52 2940import com.jacob.activeX.Activ ... -
jsp导出word 带图片
2010-04-12 17:28 33881.将word另存为html格式,然后将html格式的文件另存 ... -
读取blob格式图片上传到服务器目录
2010-04-12 17:21 1990//得到blob格式图片 String fileUrl = ... -
批量导入图片保存成blob格式
2010-03-31 15:15 1689/** * 创建目录 * @param director ... -
org.apache.tools包 解压缩zip 解决中文乱码 ant 版本冲突
2010-03-30 12:50 3039private void createDirectory(St ... -
java 获取文件大小
2010-03-29 14:32 15809import java.io.*; public class ... -
xml的读取分析 key value
2010-03-23 15:20 1588package com.basedata.xml; impo ...
相关推荐
Jacob 操作 Word 文档详解 Jacob 操作 Word 文档概述 Jacob 是一个 Java 库,用于访问和操作 Microsoft Office 应用程序,包括 Word。它提供了一个基于 COM(Component Object Model)的接口,允许 Java 应用...
1、把jacob.dll文件,复制到 windows\system32 目录下。(注:我用的时候这个方法不能运行) 2、 把jacob.dll放入 Java\jdk1.5.0_06\jre\bin目录下.把jacob.jar放入 Java\jdk1.5.0_0\jre\lib\ext 目录下.可以正常...
此外,由于Jacob依赖于本地操作系统环境,因此它不是跨平台的解决方案,只适用于Windows系统。 总的来说,Jacob提供了一种在Java中自动化处理Word文档的方法,适用于批量处理、数据导入导出、文档生成等场景。通过...
java操作word 超简单实用:第一步: 引入包jacob.jar 第二步:参考工具类MsWordTool.java 含概基本WORD 所有操作方法 【特别难点】解决实例: 1)word书签内容替换后,书签会丢失问题 2)word定点批量插入图片...
jacob操作word实例,包括文本、表格的读写操作
本文将深入探讨如何使用Jacob库来操作Word和Excel,通过提供的示例文档,我们将理解如何进行文件转换和其他操作。 首先,Jacob全称为Java COM Bridge,是一个Java到COM(Component Object Model)桥接器,它使得...
在这个“Jacob操作word文档的方法集”中,我们将探讨如何使用Jacob 1.5版本来创建和操作Word文档,特别是创建目录。 首先,为了使用Jacob,你需要在你的项目中添加Jacob的jar文件。这通常涉及到将库添加到项目的类...
虽然AsposeWord也能生成目录,但其使用方式和JACOB不同,可能更适合不需要交互式操作或对性能有较高要求的场景。 总的来说,使用JACOB或者AsposeWord这样的工具,开发者可以在Java环境中自动化处理Word文档,包括...
在这个场景中,我们将讨论如何利用JACOB将Word文档转换为PDF。 首先,我们需要理解JACOB的工作原理。JACOB是通过Java的JNI(Java Native Interface)来调用COM接口的,这样就可以在Java代码中直接操纵COM对象,例如...
非常实用哦,对于入门者更是只剩的法宝哦。还在等什么,快下载吧。
本篇文章将深入探讨如何使用Jacob来操作Word资料。 一、Jacob库的安装与配置 首先,你需要下载Jacob的JAR文件,将其添加到你的项目类路径中。如果是Maven项目,可以在pom.xml文件中添加对应的依赖。然后,确保你的...
然而,需要注意的是,在服务器环境下使用Jacob操作Word存在一些潜在问题。由于Jacob依赖于本地的Office安装,所以这种方法可能不适用于没有安装Office的服务器,或者可能会受到服务器性能和并发限制的影响。此外,长...
下面将详细阐述Jacob操作Word文档的核心知识点。 1. **Jacob简介** Jacob全称为Java-COM Bridge,是一个开源项目,它的主要作用是提供了一个桥梁,使得Java应用程序能够调用COM组件,进而与Windows系统上的Office...
标题“jacob读取word表格”涉及到的是使用Jacob库来操作Microsoft Word文档,特别是从中读取表格数据。Jacob是一个Java到COM桥接库,允许Java应用程序调用COM组件,如Microsoft Office的应用程序。 在Java中,直接...
Jacob是一款Java库,它允许Java程序直接调用Microsoft Office应用程序,如Word、Excel和PowerPoint,来进行自动化操作。这个“Jacob 操作WORD 完整实例 附带JAR DLL”很可能是提供了一个详细的示例,教你如何使用...
在本文中,我们将深入探讨如何使用Jacob进行Word文档的操作。 首先, Jacob的核心在于ActiveXComponent和Dispatch类。ActiveXComponent是Jacob提供用来创建和访问COM对象的类,例如在Java中创建一个Word应用实例。...
本文主要探讨如何使用Java-JACOB来创建和操作Word文档。 首先,使用JACOB之前,确保你的系统中已经安装了Microsoft Office,并且配置了相应的COM组件。JACOB本身是一个开源项目,可以在SourceForge上找到...
尽管存在一定的局限性,但对于简单的转换需求,尤其是需要在Java项目中集成Office功能时,Jacob提供了一个有效且直接的解决方案。如果你需要跨平台或处理复杂的转换任务,可能需要考虑其他工具,如Apache POI或者...
jacob操作word
在这个“Jacob操作Word完整代码实例”中,我们将深入探讨如何使用Jacob来实现对Word文档的各种操作。 首先,为了使用Jacob,你需要在你的项目中添加Jacob的jar文件。这个库通常可以从其官方网站或者其他开源仓库...