有关jacob的word操作研究

有关jacob的word操作研究
有关jacob的word操作研究

有关jacob的word操作研究

关键字: jacob

程序测试环境:

windowsXP sp2

office2003

jacob_1.11-pre1.zip jacob开发包

package https://www.360docs.net/doc/fe1172291.html,mon; import java.util.HashMap;

import com.jacob.activeX.ActiveXComponent; import https://www.360docs.net/doc/fe1172291.html,.Dispatch;

import https://www.360docs.net/doc/fe1172291.html,.Variant;

/**

*

* @author zhuzhen_hua@https://www.360docs.net/doc/fe1172291.html,

*

*/

public class MSWordManager {

// word文档

private Dispatch doc;

// word运行程序对象

private ActiveXComponent word;

// 所有word文档集合

private Dispatch documents;

// 选定的范围或插入点

private Dispatch selection;

private boolean saveOnExit = true;

public MSWordManager() {

if (word == null) {

word = new ActiveXComponent("Word.Application");

word.setProperty("Visible", new Variant(false));

}

if (documents == null)

documents = word.getProperty("Documents").toDispatch();

}

/**

* 设置退出时参数

*

* @param saveOnExit

* boolean true-退出时保存文件,false-退出时不保存文件 */

public void setSaveOnExit(boolean saveOnExit) {

this.saveOnExit = saveOnExit;

}

/**

* 创建一个新的word文档

*

*/

public void createNewDocument() {

doc = Dispatch.call(documents, "Add").toDispatch();

selection = Dispatch.get(word, "Selection").toDispatch();

}

/**

* 打开一个已存在的文档

*

* @param docPath

*/

public void openDocument(String docPath) {

closeDocument();

doc = Dispatch.call(documents, "Open", docPath).toDispatch(); selection = Dispatch.get(word, "Selection").toDispatch();

}

/**

* 把选定的内容或插入点向上移动

*

* @param pos

* 移动的距离

*/

public void moveUp(int pos) {

if (selection == null)

selection = Dispatch.get(word, "Selection").toDispatch(); for (int i = 0; i < pos; i++)

Dispatch.call(selection, "MoveUp");

}

/**

* 把选定的内容或者插入点向下移动

*

* @param pos

* 移动的距离

*/

public void moveDown(int pos) {

if (selection == null)

selection = Dispatch.get(word, "Selection").toDispatch(); for (int i = 0; i < pos; i++)

Dispatch.call(selection, "MoveDown");

}

/**

* 把选定的内容或者插入点向左移动

*

* @param pos

* 移动的距离

*/

public void moveLeft(int pos) {

if (selection == null)

selection = Dispatch.get(word, "Selection").toDispatch(); for (int i = 0; i < pos; i++) {

Dispatch.call(selection, "MoveLeft");

}

}

/**

* 把选定的内容或者插入点向右移动

*

* @param pos

* 移动的距离

*/

public void moveRight(int pos) {

if (selection == null)

selection = Dispatch.get(word, "Selection").toDispatch(); for (int i = 0; i < pos; i++)

Dispatch.call(selection, "MoveRight");

}

/**

* 把插入点移动到文件首位置

*

*/

public void moveStart() {

if (selection == null)

selection = Dispatch.get(word, "Selection").toDispatch(); Dispatch.call(selection, "HomeKey", new Variant(6));

}

/**

* 从选定内容或插入点开始查找文本

*

* @param toFindText

* 要查找的文本

* @return boolean true-查找到并选中该文本,false-未查找到文本 */

public boolean find(String toFindText) {

if (toFindText == null || toFindText.equals(""))

return false;

// 从selection所在位置开始查询

Dispatch find = word.call(selection, "Find").toDispatch(); // 设置要查找的内容

Dispatch.put(find, "Text", toFindText);

// 向前查找

Dispatch.put(find, "Forward", "True");

// 设置格式

Dispatch.put(find, "Format", "True");

// 大小写匹配

Dispatch.put(find, "MatchCase", "True");

// 全字匹配

Dispatch.put(find, "MatchWholeWord", "True");

// 查找并选中

return Dispatch.call(find, "Execute").getBoolean();

}

/**

* 把选定选定内容设定为替换文本

*

* @param toFindText

* 查找字符串

* @param newText

* 要替换的内容

* @return

*/

public boolean replaceText(String toFindText, String newText) {

if (!find(toFindText))

return false;

Dispatch.put(selection, "Text", newText);

return true;

}

/**

* 全局替换文本

*

* @param toFindText

* 查找字符串

* @param newText

* 要替换的内容

*/

public void replaceAllText(String toFindText, String newText) {

while (find(toFindText)) {

Dispatch.put(selection, "Text", newText);

Dispatch.call(selection, "MoveRight");

}

}

/**

* 在当前插入点插入字符串

*

* @param newText

* 要插入的新字符串

*/

public void insertText(String newText) {

Dispatch.put(selection, "Text", newText);

}

/**

*

* @param toFindText

* 要查找的字符串

* @param imagePath

* 图片路径

* @return

*/

public boolean replaceImage(String toFindText, String imagePath) { if (!find(toFindText))

return false;

Dispatch.call(Dispatch.get(selection, "InLineShapes").toDispatch(), "AddPicture", imagePath);

return true;

}

/**

* 全局替换图片

*

* @param toFindText

* 查找字符串

* @param imagePath

* 图片路径

*/

public void replaceAllImage(String toFindText, String imagePath) {

while (find(toFindText)) {

Dispatch.call(Dispatch.get(selection, "InLineShapes").toDispatch(), "AddPicture", imagePath);

Dispatch.call(selection, "MoveRight");

}

}

/**

* 在当前插入点插入图片

*

* @param imagePath

* 图片路径

*/

public void insertImage(String imagePath) {

Dispatch.call(Dispatch.get(selection, "InLineShapes").toDispatch(), "AddPicture", imagePath);

}

/**

* 合并单元格

*

* @param tableIndex

* @param fstCellRowIdx

* @param fstCellColIdx

* @param secCellRowIdx

* @param secCellColIdx

*/

public void mergeCell(int tableIndex, int fstCellRowIdx, int fstCellColIdx,

int secCellRowIdx, int secCellColIdx) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

Dispatch fstCell = Dispatch.call(table, "Cell",

new Variant(fstCellRowIdx), new Variant(fstCellColIdx))

.toDispatch();

Dispatch secCell = Dispatch.call(table, "Cell",

new Variant(secCellRowIdx), new Variant(secCellColIdx))

.toDispatch();

Dispatch.call(fstCell, "Merge", secCell);

}

/**

* 在指定的单元格里填写数据

*

* @param tableIndex

* @param cellRowIdx

* @param cellColIdx

* @param txt

*/

public void putTxtToCell(int tableIndex, int cellRowIdx, int cellColIdx, String txt) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

Dispatch cell = Dispatch.call(table, "Cell", new Variant(cellRowIdx), new Variant(cellColIdx)).toDispatch();

Dispatch.call(cell, "Select");

Dispatch.put(selection, "Text", txt);

}

/**

* 在当前文档拷贝剪贴板数据

* @param pos

*/

public void pasteExcelSheet(String pos){

moveStart();

if (this.find(pos)) {

Dispatch textRange = Dispatch.get(selection, "Range").toDispatch(); Dispatch.call(textRange, "Paste");

}

}

/**

* 在当前文档指定的位置拷贝表格

*

* @param pos

* 当前文档指定的位置

* @param tableIndex

* 被拷贝的表格在word文档中所处的位置

*/

public void copyTable(String pos, int tableIndex) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

Dispatch range = Dispatch.get(table, "Range").toDispatch();

Dispatch.call(range, "Copy");

if (this.find(pos)) {

Dispatch textRange = Dispatch.get(selection, "Range").toDispatch(); Dispatch.call(textRange, "Paste");

}

}

/**

* 在当前文档指定的位置拷贝来自另一个文档中的表格

*

* @param anotherDocPath

* 另一个文档的磁盘路径

* @param tableIndex

* 被拷贝的表格在另一格文档中的位置

* @param pos

* 当前文档指定的位置

*/

public void copyTableFromAnotherDoc(String anotherDocPath, int tableIndex,

String pos) {

Dispatch doc2 = null;

try {

doc2 = Dispatch.call(documents, "Open", anotherDocPath)

.toDispatch();

// 所有表格

Dispatch tables = Dispatch.get(doc2, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item",

new Variant(tableIndex)).toDispatch();

Dispatch range = Dispatch.get(table, "Range").toDispatch();

Dispatch.call(range, "Copy");

if (this.find(pos)) {

Dispatch textRange = Dispatch.get(selection, "Range").toDispatch(); Dispatch.call(textRange, "Paste");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (doc2 != null) {

Dispatch.call(doc2, "Close", new Variant(saveOnExit));

doc2 = null;

}

}

}

/**

* 在当前文档指定的位置拷贝来自另一个文档中的图片

* @param anotherDocPath 另一个文档的磁盘路径

* @param shapeIndex 被拷贝的图片在另一格文档中的位置

* @param pos 当前文档指定的位置

*/

public void copyImageFromAnotherDoc(String anotherDocPath,int shapeIndex,String pos){

Dispatch doc2 = null;

try {

doc2 = Dispatch.call(documents, "Open", anotherDocPath)

.toDispatch();

Dispatch shapes = Dispatch.get(doc2, "InLineShapes").toDispatch(); Dispatch shape = Dispatch.call(shapes, "Item", new

Variant(shapeIndex)).toDispatch();

Dispatch imageRange = Dispatch.get(shape, "Range").toDispatch(); Dispatch.call(imageRange, "Copy");

if (this.find(pos)) {

Dispatch textRange = Dispatch.get(selection, "Range").toDispatch(); Dispatch.call(textRange, "Paste");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (doc2 != null) {

Dispatch.call(doc2, "Close", new Variant(saveOnExit));

doc2 = null;

}

}

/**

* 创建表格

*

* @param pos

* 位置

* @param cols

* 列数

* @param rows

* 行数

*/

public void createTable(String pos, int numCols, int numRows) {

if (find(pos)) {

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

Dispatch range = Dispatch.get(selection, "Range").toDispatch();

Dispatch newTable = Dispatch.call(tables, "Add", range,

new Variant(numRows), new Variant(numCols)).toDispatch();

Dispatch.call(selection, "MoveRight");

}

}

/**

* 在指定行前面增加行

*

* @param tableIndex

* word文件中的第N张表(从1开始)

* @param rowIndex

* 指定行的序号(从1开始)

*/

public void addTableRow(int tableIndex, int rowIndex) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch rows = Dispatch.get(table, "Rows").toDispatch();

Dispatch row = Dispatch.call(rows, "Item", new Variant(rowIndex))

.toDispatch();

Dispatch.call(rows, "Add", new Variant(row));

}

* 在第1行前增加一行

*

* @param tableIndex

* word文档中的第N张表(从1开始)

*/

public void addFirstTableRow(int tableIndex) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch rows = Dispatch.get(table, "Rows").toDispatch();

Dispatch row = Dispatch.get(rows, "First").toDispatch();

Dispatch.call(rows, "Add", new Variant(row));

}

/**

* 在最后1行前增加一行

*

* @param tableIndex

* word文档中的第N张表(从1开始)

*/

public void addLastTableRow(int tableIndex) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch rows = Dispatch.get(table, "Rows").toDispatch();

Dispatch row = Dispatch.get(rows, "Last").toDispatch();

Dispatch.call(rows, "Add", new Variant(row));

}

/**

* 增加一行

*

* @param tableIndex

* word文档中的第N张表(从1开始)

*/

public void addRow(int tableIndex) {

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch rows = Dispatch.get(table, "Rows").toDispatch();

Dispatch.call(rows, "Add");

}

/**

* 增加一列

*

* @param tableIndex

* word文档中的第N张表(从1开始)

*/

public void addCol(int tableIndex) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch cols = Dispatch.get(table, "Columns").toDispatch();

Dispatch.call(cols, "Add").toDispatch();

Dispatch.call(cols, "AutoFit");

}

/**

* 在指定列前面增加表格的列

*

* @param tableIndex

* word文档中的第N张表(从1开始)

* @param colIndex

* 制定列的序号 (从1开始)

*/

public void addTableCol(int tableIndex, int colIndex) {

// 所有表格

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch cols = Dispatch.get(table, "Columns").toDispatch();

System.out.println(Dispatch.get(cols, "Count"));

Dispatch col = Dispatch.call(cols, "Item", new Variant(colIndex))

.toDispatch();

// Dispatch col = Dispatch.get(cols, "First").toDispatch();

Dispatch.call(cols, "Add", col).toDispatch();

Dispatch.call(cols, "AutoFit");

}

/**

* 在第1列前增加一列

*

* @param tableIndex

* word文档中的第N张表(从1开始)

*/

public void addFirstTableCol(int tableIndex) {

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch cols = Dispatch.get(table, "Columns").toDispatch();

Dispatch col = Dispatch.get(cols, "First").toDispatch();

Dispatch.call(cols, "Add", col).toDispatch();

Dispatch.call(cols, "AutoFit");

}

/**

* 在最后一列前增加一列

*

* @param tableIndex

* word文档中的第N张表(从1开始)

*/

public void addLastTableCol(int tableIndex) {

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

// 要填充的表格

Dispatch table = Dispatch.call(tables, "Item", new Variant(tableIndex)) .toDispatch();

// 表格的所有行

Dispatch cols = Dispatch.get(table, "Columns").toDispatch();

Dispatch col = Dispatch.get(cols, "Last").toDispatch();

Dispatch.call(cols, "Add", col).toDispatch();

Dispatch.call(cols, "AutoFit");

}

/**

* 自动调整表格

*

*/

public void autoFitTable(){

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

int count = Dispatch.get(tables, "Count").toInt();

for(int i=0;i Dispatch table = Dispatch.call(tables, "Item", new Variant(i+1))

.toDispatch();

Dispatch cols = Dispatch.get(table, "Columns").toDispatch();

Dispatch.call(cols, "AutoFit");

}

}

/**

* 调用word里的宏以调整表格的宽度,其中宏保存在document下

*

*/

public void callWordMacro(){

Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();

int count = Dispatch.get(tables, "Count").toInt();

Variant vMacroName = new Variant("Normal.NewMacros.tableFit"); Variant vParam = new Variant("param1");

Variant para[]=new Variant[]{vMacroName};

for(int i=0;i Dispatch table = Dispatch.call(tables, "Item", new Variant(i+1))

.toDispatch();

Dispatch.call(table, "Select");

Dispatch.call(word,"Run","tableFitContent");

}

}

/**

* 设置当前选定内容的字体

*

* @param boldSize

* @param italicSize

* @param underLineSize

* 下划线

* @param colorSize

* 字体颜色

* @param size

* 字体大小

* @param name

* 字体名称

*/

public void setFont(boolean bold, boolean italic, boolean underLine, String colorSize, String size, String name) {

Dispatch font = Dispatch.get(selection, "Font").toDispatch(); Dispatch.put(font, "Name", new Variant(name));

Dispatch.put(font, "Bold", new Variant(bold));

Dispatch.put(font, "Italic", new Variant(italic));

Dispatch.put(font, "Underline", new Variant(underLine));

Dispatch.put(font, "Color", colorSize);

Dispatch.put(font, "Size", size);

}

/**

* 文件保存或另存为

*

* @param savePath

* 保存或另存为路径

*/

public void save(String savePath) {

Dispatch.call(Dispatch.call(word, "WordBasic").getDispatch(), "FileSaveAs", savePath);

}

/**

* 关闭当前word文档

*

*/

public void closeDocument() {

if (doc != null) {

Dispatch.call(doc, "Save");

Dispatch.call(doc, "Close", new Variant(saveOnExit));

doc = null;

}

}

/**

* 关闭全部应用

*

*/

public void close() {

closeDocument();

if (word != null) {

Dispatch.call(word, "Quit");

word = null;

}

selection = null;

documents = null;

}

/**

* 打印当前word文档

*

*/

public void printFile() {

if (doc != null) {

Dispatch.call(doc, "PrintOut");

}

}

public static void main(String args[]) {

MSWordManager msWordManager = new MSWordManager();

try {

msWordManager.openDocument("D:\\SUPERADMIN20061121100.doc"); msWordManager.callWordMacro();

} catch (Exception e) {

e.printStackTrace();

}

msWordManager.close();

}

}

jacob大部分方法封装类

package com.bjsasc.avidm.avplan.evaluate.util; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import com.jacob.activeX.ActiveXComponent; import https://www.360docs.net/doc/fe1172291.html,FailException; import https://www.360docs.net/doc/fe1172291.html,Thread; import https://www.360docs.net/doc/fe1172291.html,.Dispatch; import https://www.360docs.net/doc/fe1172291.html,.Variant; public class EvaluateJacobWordUtil { /** Word应用对象*/ private ActiveXComponent wordApplication; /** 所有文档对象*/ private Dispatch wdDocuments; /** 当前活动文档对象*/ private Dispatch wdDocument; /** 当前选择范围*/ private Dispatch wdSelection; /** 所有表格对象*/ private Dispatch wdTables; /** 当前表格对象*/ private Dispatch wdTable; /** 单元格对象*/ private Dispatch tbCell; /** 所有书签对象*/ private Dispatch wdBookmarks; /** 当前书签对象*/ private Dispatch wdBookmark; /** empty */ private Dispatch range;

高中信息技术学业水平考试WordExcel操作题考点总结

高中信息技术学业水平考试W o r d E x c e l操作 题考点总结 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

Word操作题考点总结 常用工具栏、格式工具栏的调出:视图菜单——工具栏——常用、格式 1、设置字体、添加底纹 字体的设置:选中文字——格式——字体 字符间距、文字效果的设置:选中文字——格式——字体——字符间距、文字效果 底纹的设置:选中文字——格式——边框和底纹 2、设置段落、行距 选中段落——格式——段落——行距、首行缩进(找特殊格式)、段前段后、左缩进右缩进 3、页面设置 文件——页面设置页边距(上下左右)、纸型 4、图片 插入图片:先把光标放到插入的位置,插入——图片——来自文件 图片大小设置:选中图片——格式——图片——大小——输入高、宽值(根据情况取消或勾选“锁定纵横比”) 图片环绕方式的设置:选中图片——格式——图片——版式——选择合适的环绕方式(若找不到需要的环绕方式,点击高级) 5、艺术字 插入艺术字:先把鼠标光标放到插入的位置,插入——图片——艺术字 艺术字环绕方式的设置:选中艺术字(鼠标呈四向箭头单击)——格式——艺术字——格式、版式 更改艺术字的样式、字体:选中艺术字——艺术字工具栏(若没有,选择视图菜单——工具栏——艺术字) 6、自选图形 插入自选图形:插入——图片——自选图形——出现自选图形对话框选中合适的图形,然后拖拉鼠标绘制图形 自选图形的设置:选中自选图形——格式——自选图形——设置自选图形格式——颜色线条、大小、版式 7、文本框 插入文本框:插入——文本框——横排、竖排 文本框的设置:文本框上单击——格式——文本框——设置文本框格式——颜色线条、大小、版式 8、项目编号 选中需要添加项目符号的段落——格式——项目符号和编号——编号 9、特殊符号 插入——特殊符号——特殊符号 10、分栏 分栏:格式——分栏——选择分的栏数 取消分栏:格式——分栏——选择一栏 11、页眉和页脚、页码

Java 实现word 中写入文字图片的解决方案

Java 实现word 中写入文字图片的解决方案 JAVA生成WORD文件的方法目前有以下两种方式: 一种是jacob 但是局限于windows平台往往许多JAVA程序运行于其他操作系统在此不讨论该方案; 一种是poi但是他的excel处理很程序word模块还局限于读取word的文本内容,写word文件就更弱项了. 用到的jar包: iText-2.1.5.jar iText-rtf-2.1.4.jar iTextAsian.jar <!-- https://https://www.360docs.net/doc/fe1172291.html,/artifact/com.lowagie/itext --> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.5</version> </dependency> <!-- https://https://www.360docs.net/doc/fe1172291.html,/artifact/com.lowagie/itext-rtf -->

<dependency> <groupId>com.lowagie</groupId> <artifactId>itext-rtf</artifactId> <version>2.1.4</version> </dependency> <!-- https://https://www.360docs.net/doc/fe1172291.html,/artifact/com.itextpdf/itext-asian --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> /** * 创建word文档步骤: * 1,建立文档 * 2,创建一个书写器 * 3,打开文档 * 4,向文档中写入数据 * 5,关闭文档 */

全国计算机等级考试二级MSOffice高级操作题考点及步骤整理

全国计算机等级考试二级MSOffice高级操作题考点及步骤整理

WORD 根据示例图片对文档进行字体调整及内容排版(邀请函、海报、新闻、政府工作报告) ?字体、段落、行距、分页、页边距、装订线、主题图片、自动生成目录、超链接、注脚、繁简转换、另存pdf ?正文首行缩进标题不变(全选-右击样式里的“正文” 样式-修改-格式-段落-正文文本首行缩进) ?复制另一个Word样式到此文档(打开另一个文档-文件-选项-加载项-管理:模板-管理器-单击右侧“关闭文件”-“打开文件”选择需要编辑文档-选择需要复制的样式复制-关闭 ?软回车改成硬回车(替换^l成^p,即特殊符号里“手动换行符”到“段落标记”) ?对文字设域(插入-文档部件-域) ?提要栏(插入-文本框-XX型提要栏) ?表格:更改样式、边框、作图(插入图表再在弹出的excel里更改数据) ?封面(日期协同变化能够删除日期框改成文本框)?页眉页脚正文开始且奇偶页不同(先设置奇偶页不同-分页)、标题自动显示在页眉区(添加页眉-插入-文档部件-域-类别:链接和引用-StyleRef-标题样式

-从底部向顶部检索-确定) ?邮件合并功能制作内容相同、收件人不同的多份请柬,根据性别在后面添加先生或女士(先有excel里的电子表格信息,再在word里邮件-开始邮件合并-信函-选择收件人-使用现有列表-选择excel里的工作表-确定-word里选择要替换的位置,点击“插入合并域”姓名-点击“规则域”-点击如果那么否则添加条件-“完成并合并”-编辑单个文档-全部-确定)?只插入二级、三级标题(引用-目录-插入目录-选项-去掉目录级别里不需要的数字-确定) ?将文档中的表格内容保存至“表格”部件库(选中表格-插入-文档部件-将所选内容保存到文档部件库-更改名称,库为表格) EXCEL ?定义名称 ?数据透视表、分类汇总(需要先排序)、迷你折线图(定位在单元格-插入-迷你折线图-选择单行数据-确定)、分列(数据-固定列宽) ?将单元格日期“1月20日”显示成“1月20日星期日”(设置单元格格式-自定义-yyyy”年”m”月”d”

jacob操作word(转载)

jacob操作word 自从有了JACOB后,事情变得简单多了。 但是要实现Java灵活的控制Word还是一件非常麻烦的事情。 下面介绍几个WORD常见的对象以及一些典型的处理过程,希望对大家有帮助。 (请注意:JDK1.3.2运行 Jacob比较正常,JDK1.4有问题) private ActiveXComponent word = null; private Dispatch documents = null; private Dispatch vSelection = null; private Dispatch wordfile = null; 1,初始化 word = new ActiveXComponent("Word.Application"); documents = word.getProperty("Documents").toDispatch(); (将JACOB 放在 WINNT\system32\ 下比较简单省事) 2,打开文件 wordfile = Dispatch.invoke( documents, "Open", Dispatch.Method, new Object[] { strFileName, new Variant(true),//是否进行转换 ConfirmConversions

new Variant(false)//是否只读 }, new int[1]).toDispatch(); vSelection = word.getProperty("Selection").toDispatch(); 在WORD中,选定内容进行转换时,不用象Java对象一样来回的重新取,这个对象一直有效。 在WORD中 3,显示WORD word.setProperty("Visible", new Variant(visible)); 4,设置WORD的位置 Dispatch activeWindow = Dispatch.get(word, "Application").toDispatch(); Dispatch.put(activeWindow, "WindowState", new Variant(0)); Dispatch.put(activeWindow, "Top", new Variant(0)); Dispatch.put(activeWindow, "Left", new Variant(0)); Dispatch.put(activeWindow, "Height", new Variant(600)); Dispatch.put(activeWindow, "width", new Variant(800)); 进行将JAVA内的数据和WORD交换,常用的做法是,在WORD上作一些特殊的标记,利用 FIND 和 Replace的方法进行,这个方法不是太好。 个人觉得使用超链接的模式比较方便。 有几大优点: 1, Hyperlink 有3个区域可以让开发者自己利用 ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range,

Java Swing嵌入浏览器

import java.awt.BorderLayout; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import https://www.360docs.net/doc/fe1172291.html,.HttpURLConnection; import https://www.360docs.net/doc/fe1172291.html,.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; import https://www.360docs.net/doc/fe1172291.html,mon.UIUtils; import chrriis.dj.nativeswing.swtimpl.NativeInterface; import https://www.360docs.net/doc/fe1172291.html,ponents.JWebBrowser; import https://www.360docs.net/doc/fe1172291.html,ponents.WebBrowserCommandEvent; import https://www.360docs.net/doc/fe1172291.html,ponents.WebBrowserEvent; import https://www.360docs.net/doc/fe1172291.html,ponents.WebBrowserListener; import https://www.360docs.net/doc/fe1172291.html,ponents.WebBrowserNavigationEvent; import https://www.360docs.net/doc/fe1172291.html,ponents.WebBrowserWindowOpeningEvent; import https://www.360docs.net/doc/fe1172291.html,ponents.WebBrowserWindowWillOpenEvent; import com.jacob.activeX.ActiveXComponent; import https://www.360docs.net/doc/fe1172291.html,Thread; import https://www.360docs.net/doc/fe1172291.html,.Dispatch; import https://www.360docs.net/doc/fe1172291.html,.Variant; import com.mohe.utils.system.L; /** * 主窗体 * * @author dxm * */ public class MainFrame extends JFrame {

全国计算机等级考试二级MS-Office-高级操作题考点及步骤整理

全国计算机等级考试二级MS-Office-高级操作题考点及步骤整理

全国计算机等级考试二级MS-Office-高级操作题考点及步骤整理

WORD 根据示例图片对文档进行字体调整及内容排版(邀请函、海报、新闻、政府工作报告) ?字体、段落、行距、分页、页边距、装订线、主题图片、自动生成目录、超链接、注脚、繁简转换、另存pdf ?正文首行缩进标题不变(全选-右击样式里的“正文”样式-修改-格式-段落-正文文本首行缩进)?复制另一个Word样式到此文档(打开另一个文档-文件-选项-加载项-管理:模板-管理器-单击右侧“关闭文件”-“打开文件”选择需要编辑文档-选择需要复制的样式复制-关闭 ?软回车改成硬回车(替换^l成^p,即特殊符号里“手动换行符”到“段落标记”) ?对文字设域(插入-文档部件-域) ?提要栏(插入-文本框-XX型提要栏) ?表格:更改样式、边框、作图(插入图表再在弹出的excel里更改数据) ?封面(日期协同变化可以删除日期框改成文本框)?页眉页脚正文开始且奇偶页不同(先设置奇偶页不同-分页)、标题自动显示在页眉区(添加页眉-插入-文档部件-域-类别:链接和引用-StyleRef-标

题样式-从底部向顶部检索-确定) ?邮件合并功能制作内容相同、收件人不同的多份请柬,根据性别在后面添加先生或女士(先有excel 里的电子表格信息,再在word里邮件-开始邮件合并-信函-选择收件人-使用现有列表-选择excel里的工作表-确定-word里选择要替换的位置,点击“插入合并域”姓名-点击“规则域”-点击如果那么否则添加条件-“完成并合并”-编辑单个文档-全部-确定) ?只插入二级、三级标题(引用-目录-插入目录-选项-去掉目录级别里不需要的数字-确定) ?将文档中的表格内容保存至“表格”部件库(选中表格-插入-文档部件-将所选内容保存到文档部件库-更改名称,库为表格) EXCEL ?定义名称 ?数据透视表、分类汇总(需要先排序)、迷你折线图(定位在单元格-插入-迷你折线图-选择单行数据-确定)、分列(数据-固定列宽) ?将单元格日期“2013年1月20日”显示成“2013

java操作word(内部资料)

JAVA操作word Java操作Microsoft Word之jacob(1) 现在我们一起来看看,用J1ava如何操作Microsoft Word。 jacob,官网是https://www.360docs.net/doc/fe1172291.html,/jacob 这是一个开源的工具。最新版本1.7 官方的解释是:The JACOB Project: A JAva-COM Bridge 这是官方对下载文件的说明: jacob.jar: a JAR file for the java classes which you must add to your CLASSPATH. The package names replace com.ms with com.jacob (for example https://www.360docs.net/doc/fe1172291.html,.Variant maps to https://www.360docs.net/doc/fe1172291.html,.Variant. jacob.dll: a small Win32 DLL which you must add to your PATH. samples: provided in Java source and compiled form to demonstrate various features of the product. In particular, a set of wrapper classes for Microsoft? ADO are provided as samples. 开发环境: JDK 1.6 MyEclipse Enterprise Workbench Version: 7.0 Milestone-1 Tomcat 5.5.27 现在MyEclipse中新建一个项目jacob,将jacob的jar包放到该项目的类库中。 我的jacob版本是1.14.3 。

计算机一级word操作知识点

操作部分提纲 第一部分文字录入 1、注意打出来的内容和题目参照内容要对齐。 2、注意一些比较特殊的标点符号 \ 是顿号、_是破折号——^是省略号……@是分隔号·其他特殊符号可以通过输入法状态栏上的软键盘输入,如ωπ●★ 3、注意数字、英文字母和一些标点的状态:全角/半角,中文标点/英文标点 234234wordword;,。;,.;,.正常状态下的设置是半角字符、中文标点,但是也要根据具体情况进行更改第二部分文件管理 1、所有操作在考生文件夹中完成。 2、新建文件、文件夹(注意看清楚是什么类型) 3、重命名: (1)注意重命名之前有无扩展名显示,有的话必须加,没有的话不能加。 (2)如果要更改文件的扩展名(如将abc.bmp改名为123.doc),必须先将其扩展名显示出来(工具-文件夹选项-查看),然后才能够更改。 (3)扩展名必须是小数点,不能是中文的句号。 (4)当需要输入中文名时,可以用shift+ctrl组合键进行切换。 4、搜索文件:在需要搜索的文件夹中单击工具栏上的“搜索”按钮。 (1)文件名的表示:?表示一个字符,*表示一串字符。 (2)搜索位置:看清楚当前位置。 (3)日期:创建日期、修改日期、访问日期。 (4)大小:如果题目要求搜索刚好4KB的文件,只需要看文件详细资料上的整数的显示。 (5)高级选项:是否搜索子文件夹(默认为是)。 5、复制、移动:看清楚要求。 6、更改属性:隐藏、只读、存档。如果要把隐藏属性取消,必须要先将该文件 显示出来(工具-文件夹选项-查看)。 7、建立快捷方式: (1)选定对象,单击右键-建立快捷方式。 (2)将该快捷方式移动(剪切)到题目要求的位置。 (3)改名:不需要扩展名。 8、注意几种常见的文件类型:txt代表文档文件,doc代表word文档,bmp代表 位图文件 9、建议在操作前先设置好显示扩展名和隐藏文件。 第三部分word操作 一、文档的编辑

JAVA读取WORD文档解决方案

Java读取word文档解决方案 java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。 -----实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。 -----实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。 1、采用字节的形式读取rtf模板内容 2、将可变的内容字符串转为rtf编码 3、替换原文中的可变部分,形成新的rtf文档 主要程序如下:

以上为核心代码,剩余部分就是替换,从新组装java中的String.replace(oldstr,newstr);方法可以实现,在这就不贴了。源代码部分详见附件。运行源代码前提: c盘创建YQ目录,将附件中"模板.rtf"复制到YQ目录之下,运行OpreatorRTF.java文件即可,就会在YQ 目录下生成文件名如:21时15分19秒_cheney_记录.rtf的文件。。。。。文件名是在程序中指定的呵呵。由于是由商业软件中拆分出的demo所以只是将自己原来的写的程序分离,合并在一个java文件中,所以有的方法在示例程序中看似多余,没有必要那么麻烦。 对于替换部分需要循环的特例程序,我不好拆分,里面很容易暴露商业软件的东西,所以就不贴了,有需要的话可以加我QQ或者MSN,一起讨论呵呵。附件传了半天也没有传上去,没有办法只有这样搞了呵呵。模板文件附件无法存放,需要的直接联系呵呵。其实直接看以下的java程序部分,就会明白

全国计算机一级考试操作题考点汇总

全国计算机一级B考试操作题考点总结 一、基本操作 1.新建文件或文件夹:新建文本文件、Word文档 2.文件的复制与移动 3.按条件搜索文件或文件夹:*与?的使用方法 4.文件的删除 5.设置文件的属性 6.创建文件的快捷方式 7.文件或文件夹的重命名 二、文字录入 注意:英文名称、专业术语、特殊符号等 三、文字处理 1.新建文档并保存 注意:文件名、文件类型与保存位置 2.插入文件 方法: 使用【插入】|【文件】命令,打开对话框,选择需要插入的文件即可。 3.将几段合并为一段 4.设置文字格式:字体、字号、颜色、下划线、加粗、倾斜、字符间 距、效果与动态效果等 5.设置段落格式:对齐方式、左缩进、右缩进、段前间距、段后间距、 行距等 6.替换和高级替换 方法: 使用【编辑】|【替换】打开对话框,分别填入“查找内容”和“替换内容”,如果题目要求对文字的格式进行替换就必须打开【高级】按钮。 注意:第一遍设置错误后如何进行修改(【不限定格式】按钮的使用)。

7.添加项目符号和编号 方法:打开【格式】|【项目符号和编号】命令对话框,按照题目的要求选择对应的项目符号。 8.设置段落边框,文字底纹 注意:应用于段落和文字的操作方法的区别。 应用于段落:选中整个段落,包括段落分隔符。 应用于文字:选中文字内容,不能包括段落分隔符。 9.分栏 方法:使用【格式】|【分栏】命令打开对话框,设置栏数、栏宽(每个栏的宽度)、间距(栏与栏之间的距离)和分隔线。 注意:在设置分栏前,需要明确的是选定需要分栏的内容; 文章中间的段落和最后一个段落在设置上的区别。 10.页面设置:纸型(纸张大小)、左右边距、页眉与页脚高度、行网 格与字符网格等 11.设置页眉和页脚 注意:奇偶页不同的页眉与页脚、页脚处显示页码、页脚处插入自动图文集、页码内侧对齐与外侧对齐。 12.新建表格 方法:使用【表格】|【插入】|【表格】命令,打开【插入表格】对话框,设置行数和列数。 13.设置表格属性:行高、列宽、表格对齐方式、单元格对齐方式等 注意:设置行高与列宽时的度量单位。 设置对齐方式时水平居中与垂直居中。 水平对齐使用工具栏上各类对齐按钮即可。 垂直对齐需要选中单元格,鼠标右键单击弹出快捷菜单,在【单元格对齐方式】中选择合适的对齐命令。 14.表格中插入或删除一行、一列,合并单元格 15.用公式计算表格中数据 方法:单击目标单元格,选择【表格】|【公式】命令。 对左边数据求和使用公式“= SUM(LEFT)”,对上方的数据求和使用公式“=SUM(ABOVE)”,在此基础上对选择其它函数与对象。 注意:不连续区域的计算,需使用单元格地址。 16.将表格中数据排序 17.设置表格的边框线和底纹

081计算机一级考试Word操作题

081计算机一级考试Word操作题 1、【表格综合练习】请打开C:\doc\533015.doc文档,完成以下操作: A.将表格第二列与第三列交换,按图例使用合并及拆分功能操作第四列; B.将第一行中第二到第四列的字体设置为楷体_GB2312,绿色; C.表格内的单元格水平及垂直方向居中对齐,整个表格居中排列; D.在表格第一行第一列按表头“样式一”绘制斜线表头及填充内容,按图所示。(使用其它方法画斜线不得分) E.表格宽度为10厘米; F.在表格底部增加一行,该行第一列填入“总分”,其它列为该行课程的总分,必须使用sum函数计算该值; G.设置表格底纹为红色,表格四周边框为蓝色双波浪线,无内边框; H.保存文件。(题分: 5.0 得分: 0.0) 2、【文本框练习】请打开C:\doc\532062.doc文档,完成以下操作:(没有要 求操作的项目请不要更改,文字内容不含标点符号,操作该题目前必须把Word2003中的“工具-选项-常规”下的“插入自选图形时自动创建绘图画布”选项取消选中) A.在文本任意处插入文本框,文字竖排,文字内容为“十大亮点功能”,文字颜色为蓝色,字体格式为阳文,加着重号。 B.保存文件。(题分: 5.0 得分: 0.0) 3、【页面格式练习】请打开C:\doc\531002.doc文档,完成以下操作:(注: 页面设置应用于整个文档,没有要求操作的项目请不要更改) A.设置该文档纸张的高度为21厘米、宽度为21厘米,左、右边距均为3.25厘米,上、下边距均为2.54厘米,装订线1.0厘米,装订线为左; B.页眉距边界1厘米,页脚距边界1.5厘米,页面垂直对齐方式为两端对齐; C.设置页面边框为艺术型边框,艺术型类型为5个红苹果,边框宽度为20磅; D.保存文件。(题分: 5.0 得分: 0.0)

java深度处理word

JAVA操作word jacob(1) 现在我们一起来看看,用Java如何操Word。 jacob,官网是https://www.360docs.net/doc/fe1172291.html,/jacob 这是一个开源的工具。最新版本1.7 官方的解释是:The JACOB Project: A JAva-COM Bridge 开发环境: JDK 1.6 MyEclipse Enterprise Workbench Version: 7.0 Milestone-1 Tomcat 5.5.27 现在MyEclipse中新建一个项目jacob,将jacob的jar包放到该项目的类库中。 我的jacob版本是1.14.3 。

下面这一步非常重要,就是拷贝jacob目录中jacob-1.14.3-x86.dll文件到系统环境变量目录中一般情况就放在当前jdk中bin目录下。

。 这里有一个MSWordManager 类,是jacob官方发布的工具类,里面有大多数Java操作MS Office的工具。 package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.jacob.activeX.ActiveXComponent; import https://www.360docs.net/doc/fe1172291.html,.Dispatch; import https://www.360docs.net/doc/fe1172291.html,.Variant; public class MSWordManager { // word文档

计算机一级考试Word操作题

Word操作题 1、请打开C:\doc\530073.doc文档,完成以下操作(操作该题目前必须把Word2003中的“工具-选项-常规”下的“插自选图形时自动创建绘图画布”选项取消选中,新插入自选图形必须按要求进行设置才能做下一个操作,其余没有要求的项目请不要更改): 按样版补充完成流程图。从上到下作图顺序为:箭头,自选图形流程图:决策,箭头,自选图形流程图:终止;然后在图形内添加文字,红色字体、对齐方式居中。(题分:4.0 得分:0.0) 2、请打开C:\doc\530072.doc文档,完成以下操作(其余没有要求的项目请不要更改,必须使用项目符号与编号设置工具): 按图例自定义多级符号级别1编号位置:左对齐0厘米、文字缩进位置0.5厘米;级别2编号位置:左对齐1.5厘米、文字缩进位置2厘米。(题分:4.0 得分:0.0) 3、打开C:\word素材\530036.doc,完成以下操作: 1).在标题“新世纪羊城八景”后插入脚注,位置:页面底端。编号格式:1,2,3,,起始编号:1。内容:“广州城市的新形象”。 2).将文中所有“越秀”一词格式化为红字,加黄色双波浪线。(提示:使用查找替换功能快速格式化所有对象) 3).保存文件。(题分:4.0 得分:0.0) 4、请打开C:\word素材\530071.doc文档,完成以下操作(文本中每一回车符作为一段落,其余没有要求的项目请不要更改,请不要移动箭头图形的位置):A.设置文档第1段为:隶书、红色、加粗、小二字号,居中对齐、3倍行距,为“全省计算机教学工作会议”添加单下划线、蓝色;(文字内容包括双引号) B.箭头自选图形设置为:填充红色、半透明(透明度为50%)、高度3厘米、宽度20厘米,箭头图形内添加文字:国际学院一楼会议厅方向,三号字、加粗、居中对齐;

JAVA动态生成word和pdf

java生成word的几种方案 1、Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。 使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。 2、Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word 等文件。他的excel处理很强大,对于word还局限于读取,目前只能实现一些简单文件的操作,不能设置样式。 3、Java2word是一个在java程序中调用MS Office Word 文档的组件(类库)。该组件提 供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括:打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。填充数据到表格中读取表格数据,1.1版增强的功能:指定文本样式,指定表格样式。如此,则可动态排版word 文档。 4、iText操作Excel还行。对于复杂的大量的word也是噩梦。用法很简单, 但是功能很少, 不 能设置打印方向等问题。 5、JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。 6、用XML做就很简单了。Word从2003开始支持XML格式,大致的思路是先用office2003 或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。 java生成pdf方案总结 1. Jasper Report生成pdf:设计思路是先生成模板,然后得到数据,最后将两者整合得到结果。但是Jasper Report的问题在于,其生成模板的方式过于复杂,即使有IDE的帮助,我们还是需要对其中的众多规则有所了解才行,否则就会给调试带来极大的麻烦。 2. openoffice生成pdf:openoffice是开源软件且能在windows和linux平台下运行。 3. itext + flying saucer生成pdf:itext和flying saucer都是免费开源的,且与平台无关,结合css和velocity技术,可以很好的实现。 一般使用第三种方案比较多,它实现的步骤是非常简单的。

java txt 转word

使用JACOB进行Word编程示例 2015年7月2日 13:44 Jacob项目的官方地址:https://www.360docs.net/doc/fe1172291.html,/projects/jacob-project/ 官方介绍: JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls to the COM libraries. JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs 它是一个使用jni来调用com组件及其库文件的工具。这里仅介绍处理word文档。 首先要部署其dll文件。jacob-1.14.3-x86.dll 或 jacob-1.14.3-x64.dll,下载的文件解压后即可看到。我是直接将dll文件放在windows\system32目录下的,方便,当然也有其他做法。 其次,就是把其jar文件路径加入Windows路径中。 接着就可以在你的Java程序中调用了。我总结下大概有下面几个阶段: 1. 初始化相关参数,代码如下: // 打开Word应用程序 ActiveXComponent app = new ActiveXComponent("Word.Application"); // 设置word不可见 app.setProperty("Visible", new Variant(false)); // 打开word文件 Dispatch word = app.getProperty("Documents").toDispatch(); Dispatch doc = Dispatch.invoke(word, "Open", Dispatch.Method, new Object[] {" File Name", new Variant(false), new Variant(false) }, new int[1]).toDispatch(); //获取指针 Dispatch cursor = app.getProperty("Selection").toDispatch(); 如上,我们打开了一个名为File Name的word文件,你可能会觉得最后那句看起来很繁琐,是的,有更好的代替方式,如下: Dispatch doc = Dispatch.call(word, "Open", new Variant(false), new Variant(false) ).toDisptach(); 这正是Jacob给我们提供的两种调用方式。 2. 处理word文档,如果你先前有VBA相关开发经验,那就简单了。没有的也没事,打开office程序目录下的2052\VBAWD10.chm,这里有Word的对象模型的所有记录。 接着讲述下Jacob中两种最常用的类型: Variant:这是一种可变的类型,用于Jacob中几乎所有函数的返回值,并可转换为其他任何类型,包括Java基本类型。当然,应该按需要与规则来。Dispatch:Object represents MS level dispatch object. Each instance of this points at some data structure on the MS windows side.就是说可以代表所有对象模型。 import java.util.ArrayList; import java.util.List; import com.jacob.activeX.ActiveXComponent;

Java操作word文档

Java操作Word文档 操作微软word办公软件的开发工具: 1.Apache基金会提供的POI 2.通过freemarker去解析xml 3.Java2word 4.iText 5.Jacob 通过对以上工具的对比,本人发现还是Itext比较简单易用,很容易上手,能够很轻松的处理word的样式、表格等。 贴上代码,供大家参考: Jar包准备: itext-2.0.1.jar -------------------核心包 iTextAsian.jar--------------------解决word样式、编码问题扩展包 1、设置标题样式 public static Paragraph setParagraphTitle(String content,Font contentFont){ Paragraph p = new Paragraph(content, contentFont); p.setAlignment(Table.ALIGN_CENTER); p.setIndentationLeft(60); p.setIndentationRight(60); p.setSpacingBefore(20); return p; } 2、设置内容样式:

public static Paragraph setParagraphStyle(String content,Font contentFont){ Paragraph p = new Paragraph(content, contentFont); p.setFirstLineIndent(40);// 首行缩进 p.setAlignment(Paragraph.ALIGN_JUSTIFIED);// 对齐方式 p.setLeading(30);// 行间距 p.setIndentationLeft(60);// 左边距,右边距 p.setIndentationRight(60); return p; } 3、设置文档末尾时间: public static Paragraph setParagraphTime(Font contentFont){ Paragraph p = new Paragraph(FormatUtil.getCurrentDate(), contentFont); p.setIndentationLeft(250); p.setIndentationRight(60); p.setLeading(30); p.setFirstLineIndent(40); return p; } 4、开始写word文档咯: public static void WriteDoc(String path,Map map){ Document document = null; try { File file = new File(path); if (!file.exists()) { file.createNewFile(); } document = new Document(PageSize.A4); RtfWriter2.getInstance(document, new FileOutputStream(file)); document.open(); // 设置title body 中文字体及样式 BaseFont cnFont = BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font titleFont = new Font(cnFont,22, Font.NORMAL, new

2015年信息技术word中考操作题所有知识点及题目素材

境内景点众多。全境分布17个主要景点,33处古迹名胜,交通便捷。位于昆明—大理黄金旅游热线上,距楚大公路仅30分钟车程,昆明、攀枝花也仅3小时即可到达。 姚安古称姚州,位于云南省中部,全年平均气温15.5℃,日照时间长,可与素有“日光城”之称的拉萨媲美。地势有“群山环抱蛉河水、盆地碧绿万顷田”的景象。姚安是从西汉延续至今的历史文化古城,属于全国为数不多的历史文化名府,也是极少数至今仍然保留着厚重古文化内涵的县城之一。它是“古西南丝绸之路”上的重要驿站;拥有20项国家级、省、州、县级文物保护单位。是一个拥有千余件馆藏文物的宝库;这里也是历代文人荟萃之地。唐代李善、张柬之,明代李贽、徐霞客等均有诗文留下;这里还是民族乐舞之乡,有花灯、梅葛、莲花落、坝子腔四大音乐体系。独特的民俗风情及传统节日,更有让人大快朵颐的独具特色的饮食文化。可以说,让岁月浸染千年的姚安,是历史积淀深厚文化内涵厚重的古城。 县城驻地栋川镇,称为“荷城”,因城形似荷花而得名。城内有始建于明永乐二年的德丰寺,属省级文物保护单位,该寺系三重堂古代建筑群,与北京故宫为同时代建筑,全无钉楔之痕,相传为神匠所造,总兵木嶙匾其堂曰:“真如境界”,是云南省现存明代斗拱建筑中最为完整的一座。明代我国著名思想家李贽在此创办了德丰书院,寺内保存的德化铭碑,刻于宋大理国1186年,为云南八大名碑之一。正殿是十八扇八仙庆寿雕花格子门面,雕工细密。惟妙惟肖。殿内释迦牟尼金身铜像,雕刻于宋大理国时期的献宝菩萨属全国稀世珍品,尤其清代土官、著名思想家、文学家高奣映自铸铜像形象逼真,铸造工艺精湛,属国家级珍贵文物,吸引无数人前来观光。地藏寺保存有参加“公车上书”的姚邑进士胡寿荣手迹,文昌帝君阴鸷文。 城内的金荷公园小巧玲珑、古朴典雅,夏秋时节荷花满塘,堪称一绝。园内楼台亭榭、飞檐琉璃均有苏杭风格。 距离县城3公里的洋派水库,属楚雄州最早的水利工程。四周林木葱茏,库内波光粼粼,一派湖光山色。 观音阁位于县城南2公里处。三面皆山,北亘长堤,沿堤古木千樟,浓荫蔽日。西岗有阁曰:"观音",供奉大士,前则为"观海楼",当春和景明,登楼眺望,则绿波粼粼,万顷汪洋,树色山光,映带左右,作赋咏诗,自饶逸兴。《旧志》以"南湖春水",列入风景区。 位于丝绸之路要道的李贽桥,为万历五年知府李贽所建。沿线群众深受其惠。虽经四百多年沧桑风雨,至今仍发挥着重要作用。 李贽福建晋江人,是我国明代杰出的进步思想家,1577年从南京刑部员外郎调任云南姚安府知府,在姚三年,政绩卓著,在德丰寺创办德丰书院,南丝绸故道上倡建李贽桥、光明宫,著有《藏书》、《梵书》、《论政篇》等历史巨著,被称为“千古特立之人物”。 省级历史文化名镇光录是大理国相国高氏发祥地。是汉、唐、元、宋几朝云南重要的政治、经济、文化中心。古镇呈“回”字型,有十字街口的牌坊,古旧的房屋,石头铺成的街道。还有一些四合五天井、走马转角楼等大户民居,古朴典雅,烙印着历史沧桑。 光录文物古迹众多。主要有龙华寺景区、文昌宫、军民总管府、高奣映祠、飞来石等。龙华寺是云南省最古老的名刹之一,始建于唐天佑年间,已有一千多年历史。建筑庄严宏伟,保存完好,属国家级文物保护单位,由大雄宝殿、两厢、过厅、钟鼓楼、两耳、后轩北院、圆通殿、山门、三丰祠等大小房屋118间组成。分前后四院。是云南省留存较早、较完整的古代建筑群。该寺历经千年历史文化积淀,并受多元文化影响,建筑群凝聚了多民族文化风格。寺内木雕、壁画、石雕独具特色。殿内镂空雕花佛龛全国绝无仅有。还有菩提女塑像等众多文物,具有较高的历史、文化艺术价值,菩提女传说已成为家喻户晓的民族传统节日龙华会由来。寺内景观幽静宏伟,寺外背倚青山碧水,形成了景因寺而秀,寺因景更幽的独特景观。三丰祠“漱芳泉”甘甜可口,成为神水。 光录人杰地灵,自古名人辈出。有“九爽七公八宰相,一帝三王五封侯”和“一门出五举,三

相关文档
最新文档