| 1、 |
二次开发基础知识FAQ |
| |
1.1、 |
什么是永中集成Office的二次开发,有什么作用? |
| |
答: |
永中集成Office的二次开发是指第三方程序利用永中集成Office提供的接口,实现对永中集成Office内部功能的调用,或者实现永中集成Office文档内部信息的自动获取、设置的功能。通过二次开发可以达到以下目的:完成某种自动化的操作、为永中集成Office增加特定功能、和OA系统结合实现办公自动化等。 |
|
| |
1.2、 |
永中集成Office 2007新增了哪些二次开发功能? |
|
| |
1.3、 |
进行永中集成Office二次开发难吗,需要掌握哪些知识? |
| |
答: |
进行永中集成Office二次开发并不困难,永中Office提供了一些工具(如对象浏览器等)方便开发者开发,同时,可以通过录制宏等功可以简化开发过程。永中集成Office二次开发主要使用Java语言,掌握Java语言编程,对于快速进行永中Office二次开发非常有益。根据二次开发的方向和用途的不同,所需要掌握的知识也不一样。 |
|
| |
1.4、 |
作为Java应用程序,永中Office提供JavaDoc API文档吗?在哪里可以获取? |
| |
答: |
永中Office提供了详细的中文API文档,在永中Office产品光盘的API_doc目录下,打开其中的index.html文件即可查阅全部包、接口和类,以及相关的方法等。 |
|
| |
1.5、 |
要调用某个功能,但是不知道对应的API是什么,怎么办? |
| |
答: |
永中Office提供了详细的中文API文档,在永中Office产品光盘的API_doc目录下,打开其中的index.html文件即可查阅全部包、接口和类,以及相关的方法等。 |
|
| |
1.6、 |
如何获取永中集成Office二次开发的技术支持? |
| |
答: |
永中公司网页二次开发板块、BBS、商业上的技术支持等。 |
|
| |
| 2、 |
二次开发兼容性FAQ |
| |
2.1、 |
永中集成Office 2007的二次开发和旧版本永中集成Office有什么区别? |
| |
答: |
永中集成Office 2007的对象格式、设置方式等得到增强,对应的二次开发接口也有所调整。但大部分的二次开发接口和旧版本保持一致。 |
|
| |
2.2、 |
永中集成Office 2007的二次开发和微软Office二次开发有什么异同? |
| |
答: |
永中集成Office 2007的二次开发接口体系和微软Office的二次开发接口体系基本保持一致。包括:对象树,即对象的组织构成、各对象代表的含义和微软Office对象均保持一致;接口函数,即各对象的方法的名称和含义均与微软Office保持一致。所不同的是永中集成Office使用Java作为宏语言,微软Office使用VBA作为宏语言。 |
|
| |
2.3、 |
原有的与永中集成Office 2004结合的第三方程序,可以直接和永中集成Office 2007结合运行吗? |
| |
答: |
需视情况而定。永中集成Office 2007二次开发的接口进行了局部的调整,如果第三方调用的接口兼容就可以直接和永中集成Office 2007结合运行。 |
|
| |
2.4、 |
永中集成Office 2007能被哪些开发语言调用? |
| |
答: |
目前永中集成Office2007可以被Java语言直接调用,通过JNI(Java Native Interface)技术可以实现被C++、Basic、Delphi等语言调用。 |
|
| |
| 3、 |
二次开发共用部分FAQ |
| |
提示:
·各对象、方法和属性的详细使用方法,请参阅API帮助。
·以下示例代码都用Java编写,使用其它语言的开发者,请自行做相应转换。 |
| |
3.1、 |
如何启动永中集成Office? |
| |
答: |
Application.gotoProduct(int type);
type=0 电子表格
type=1 文字处理
type=2 简报制作 |
|
| |
3.2、 |
如何退出永中集成Office? |
| |
答: |
Application.exitSystem(); |
|
| |
3.3、 |
如何隐藏工具栏? |
| |
答: |
Application.setToolbarVisible(int barNo,false); |
| |
|
barNo取下面值: |
| |
|
|
BarConstants.STANDARD_INDEX |
=1(标准工具栏) |
| |
|
|
BarConstants.FORMATTING_INDEX |
=2(格式化工具栏) |
| |
|
|
BarConstants.CHART_INDEX |
=3(图表工具栏) |
| |
|
|
BarConstants.CLIPBOARD_INDEX |
=4(剪切板工具栏) |
| |
|
|
BarConstants.CONTROLTOOLBOX_INDEX |
=5(控件工具箱工具栏) |
| |
|
|
BarConstants.DRAWING_INDEX |
=6(绘图工具栏) |
| |
|
|
BarConstants.EXTERNALDATA_INDEX |
=7(外部数据工具栏) |
| |
|
|
BarConstants.PICTURE_INDEX |
=9(图片工具栏) |
| |
|
|
BarConstants.REVIEWING_INDEX |
=10(审阅工具栏) |
| |
|
|
BarConstants.JAVAAPP_INDEX |
=11(宏编辑器工具栏) |
| |
|
|
BarConstants.WORDART_INDEX |
=13(艺术字工具栏) |
| |
|
|
BarConstants.AUDITING_INDEX |
=14(审核工具栏) |
| |
|
|
BarConstants.STOPRECORD_INDEX |
=15(停止宏录制工具栏) |
| |
|
|
BarConstants.SHADOW_INDEX |
=16(阴影设置工具栏) |
| |
|
|
BarConstants.THREED_INDEX |
=17(三维设置工具栏) |
| |
|
|
BarConstants.FULLSCREEN_INDEX |
=18(全屏工具栏) |
| |
|
|
BarConstants.EXITDESIGN_INDEX |
=19(退出设计模式工具栏) |
| |
|
|
BarConstants.EXTENDFORMAT_INDEX |
=20(扩展格式化工具栏) |
| |
|
|
BarConstants.OUTLINING_INDEX |
=23(大纲工具栏) |
| |
|
|
BarConstants.ONLINEMEETING_INDEX |
=24(联机协作工具栏) |
| |
|
|
BarConstants.MANUALSUMMARIZE_INDEX |
=25(手动编写摘要工具栏) |
| |
|
|
BarConstants.MAILMERGE_INDEX |
=26(邮件合并工具栏) |
| |
|
|
BarConstants.TIMESERIES_INDEX |
=27(时间序列工具栏) |
| |
|
|
BarConstants.USERFORM_INDEX |
=28(用户窗体工具栏) |
| |
|
|
BarConstants.AUTOTEXT_INDEX |
=29(自动文集工具栏) |
| |
|
|
BarConstants.AUTOSHAPES_INDEX |
=30(自选图形工具栏) |
| |
|
|
BarConstants.TABALE_INDEX |
=37 (表格工具栏) |
| |
|
|
BarConstants.MENUBAR_INDEX |
=100(永中集成Office菜单) |
|
| |
3.4、 |
如何添加一个自定义的工具栏? |
| |
答: |
Application.getCommandBars().addToolBar("My Toolbar"); //自定义一个名为My Toolbar的工具栏 |
|
| |
3.5、 |
如何新建一个文档? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook(); //取得当前的workbook对象
workbook.getDocuments().addDocument(); //新建一个文字处理文档
workbook.getWorksheets().addWorksheet(); //新建一个电子表格
workbook.getPresentations().add(); //新建一个简报 |
|
| |
3.6、 |
如何打开永中集成Office文档? |
| |
答: |
Application.getWorkbooks().openWorkbook("c:/test1.eio"); //打开C盘下的文件test1.eio |
|
| |
3.7、 |
如何关闭一个文档? |
| |
答: |
Workbook workbook =Application.getWorkbooks().getActiveWorkbook();
workbook.close(); //关闭当前文档 |
|
| |
3.8、 |
如何保存一个文档? |
| |
答: |
Workbook workbook =Application.getWorkbooks().getActiveWorkbook();
workbook.save(); //保存当前文档 |
|
| |
3.9、 |
如何保存一个文档为其他格式? |
| |
答: |
Application.getWorkbooks().getActiveWorkbook().saveAs("c:/test2.doc"); //将当前文字处理文档保存为DOC文档 |
|
| |
3.10、 |
如何获取和设置默认打印机? |
| |
答: |
电子表格:
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet=workbook.getWorksheets().getActiveWorksheet(); //获取当前电子表格
worksheet.getPrint (); //获取当前电子表格的默认打印机
文字处理:
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document document = workbook..getDocuments().getActiveDocument(); //获取当前文字处理文档
document.getPrint(); //获取当前文字处理的默认打印机
简报制作:
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Presentation presentation = workbook.getPresentations().getActivePresentation(); //获取当前简报制作文档
presentation.getPrint(); //获取当前简报的默认打印机 |
|
| |
3.11、 |
如何打印一篇已打开的文档? |
| |
答: |
电子表格:
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet=workbook.getWorksheets().getActiveWorksheet();
worksheet.getPrint ().print(); //打印当前电子表格
文字处理:
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document document = workbook..getDocuments().getActiveDocument();
document.getPrint().print(); //打印当前文字处理
简报制作:
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Presentation presentation = workbook.getPresentations().getActivePresentation();
presentation.getPrint().print(); //打印当前简报 |
|
| |
3.12、 |
如何获得或修改当前用户名? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
workbook.getFileProperties().getFileAuthor(); //获得当前用户名
workbook.getFileProperties().setFileAuthor("UserA"); //修改当前用户名 |
|
| |
| 4、 |
二次开发文字处理部分FAQ |
| |
4.1、 |
如何新建永中集成Office文档并向光标所在位置插入内容? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook(); //取得当前的workbook对象
Document doc = workbook.getDocuments().getActiveDocument(); //获取当前的文字处理对象
doc.getSection(0).getBaseText().insertText(doc.getOffset(),"无锡永中科技有限公司"); //向光标所在位置插入“无锡永中科技有限公司” |
|
| |
4.2、 |
如何在当前文档中添加一个表格? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
BaseText basetext = doc.getSection(0).getBaseText(); //获取文字处理中文本的正文部分
doc.getTables().insertTable(basetext, 0, 5, 5, TableConstants.FIXED_COLUMN_WIDTH, 60f, "Test"); //添加一个5行5列的固定列宽为60磅的表格 |
|
| |
4.3、 |
如何获取表格的单元格? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
doc.getTables().getTable("表格1").getTableCell(1,1); //获取表格1的第一行第一列的单元格 |
|
| |
4.4、 |
如何修改一个表格的某个单元格的内容? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
doc.getTables().getTable("表格1").setCellValue(1,1,"abc"); //修改表格1的第一行第一列的单元格内容为“abc” |
|
| |
4.5、 |
如何设置一个表格的单元格的高度和宽度? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document document = workbook.getDocuments().getActiveDocument();
BaseText basetext = document.getSection(0).getBaseText();
document.getTables().insertTable(basetext,0,3,3,TableConstants.FIXED_COLUMN_WIDTH,60f,"Test");
Table table = document.getTables().getTable("Test"); //取得名为Test的表格
TableAttribute attr = table.getTableAttribute(); //获取表格属性
attr.setColWidthMeasure(true); //设置宽度值根据工具/选项/常规中的文档度量单位值来决定
attr.setColWidth(80f); //设置宽度为80磅(工具/选项/常规中的文档度量单位值为磅)
attr.setRowHeightExact(true); //设置高度值根据工具/选项/常规中的文档度量单位值来决定
attr.setRowHeight(80f); //设置高度为80磅(工具/选项/常规中的文档度量单位值为磅)
table.setTableAttribute(attr); //对表格应用上述属性 |
|
| |
4.6、 |
如何添加一个书签? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
BaseText basetext = doc.getSection(0).getBaseText();
doc.getBookmarks().add(0, 5, basetext, "书签1"); //添加一个“书签1”,从位置0开始长度为5 |
|
| |
4.7、 |
如何替换一个书签的内容? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
doc.getBookmarks().get("标签1").setStartPosition(1); //设置书签标签1的起始位置
doc.getBookmarks().get("标签1").setEndPosition(12); //设置书签标签1的结束位置 |
|
| |
4.8、 |
如何获取和设置某些文字的字体属性? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
BaseText basetext = doc.getSection(0).getBaseText();
FontAttribute fontAttribute = basetext.getFontAttribute(0); //获取字体属性
fontAttribute.setBold(true); //设置字体属性fontAttribute为粗体
basetext.setFontAttribute(1,10, fontAttribute); //设置字体属性为fontAttribute |
|
| |
4.9、 |
如何获取和设置段落的格式? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
BaseText basetext = doc.getSection(0).getBaseText();
ParagraphAttribute paragraphAttribute = basetext.getParagraphAttribute(0); //获取段落格式
paragraphAttribute.setFirstLineIndent(3.8f, UnitConstants.CENTIMETER); //设置首行缩进距离
basetext.setParagraphAttribute(0,0,paragraphAttribute,true); //应用段落格式 |
|
| |
| 5、 |
二次开发电子表格部分FAQ |
| |
5.1、 |
如何获取和设置段落的格式? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet(); //获取当前的电子表格对象
worksheet.getCellValue(1,1); //获取第一行第一列单元格的内容 |
|
| |
5.2、 |
如何设置单元格中的内容? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
worksheet.setCellValue(1,1,123.45); //设置第一行第一列单元格的内容为123.45 |
|
| |
5.3、 |
如何设置一个单元格的大小? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
worksheet.getColumns(1,1).setColumnWidth(5,UnitConstants.CENTIMETER); //设置宽度为5厘米
worksheet.getRows(1,1).setRowHeight(5,UnitConstants.CENTIMETER); //设置高度为5厘米 |
|
| |
5.4、 |
如何设置单元格中的公式? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
worksheet.getCell(10,10).setValue("=SUM(A1+A2)"); //设置第十行第十列的单元格中的公式为SUM(A1+A2) |
|
| |
5.5、 |
如何设置单元格的边框? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
BorderAttribute border = worksheet.getCell(1,1).getBorderAttribute(); //获取单元格的边框属性
border.setApplyType(BorderAndShadingConstants.APPLY_CELL); //设置边框应用范围为单元格
border.setBorderType(BorderAndShadingConstants.BORDERTYPE_BOX); //设置边框类型为方框格式
border.setBorderLineType(BorderAndShadingConstants.LEFT, 0); //设置左边框线条类型为无边框
border.setBorderLineWidth(BorderAndShadingConstants.LEFT, 3.0f); //设置左边框线条宽度为3磅
border.setBorderLineType(BorderAndShadingConstants.TOP, 0); //设置上边框线条类型为无边框
border.setBorderLineWidth(BorderAndShadingConstants.TOP, 3.0f); //设置上边框线条宽度为3磅
border.setBorderLineType(BorderAndShadingConstants.RIGHT, 0); //设置右边框线条类型为无边框
border.setBorderLineWidth(BorderAndShadingConstants.RIGHT, 3.0f); //设置右边框线条宽度为3磅
border.setBorderLineType(BorderAndShadingConstants.BOTTOM, 0); //设置下边框线条类型为无边框
border.setBorderLineWidth(BorderAndShadingConstants.BOTTOM, 3.0f); //设置下边框线条宽度为3磅
worksheet.getCell(1, 1).setBorderAttribute(border); //应用边框类型设置 |
|
| |
5.6、 |
如何读取批注的内容? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
worksheet.getComments().getComment(1,1); //读取第一行第一列单元格的批注内容 |
|
| |
5.7、 |
如何添加批注? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
worksheet.getComments().insertComment(3,3); //为第三行第三列单元格添加批注 |
|
| |
5.8、 |
如何设置单元格内字体的属性? |
| |
答: |
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Worksheet worksheet = workbook.getWorksheets().getActiveWorksheet();
FontAttribute fontattribute = worksheet.getCell(1,1).getFontAttribute();
fontattribute.setBold(true); //设置字体属性为粗体
worksheet.getCell(1, 1).setFontAttribute(fontattribute); //应用字体属性 |
|
| |
5.9、 |
如何生成一个图表? |
| |
答: |
Chart chart = Application.getWorkbooks().getActiveWorkbook().getCharts().addChartAsObject(ChartConstants.EMOCHART_COLUMN,0, "工作表1");//在工作表1中生成一柱形图
chart.setSeriesRanges("='工作表1'!A1:F13", false); //设置图表数据源 |
|