`

Java Jacob将数据库信息导入Word文档

    博客分类:
  • java
 
阅读更多
package com.andy.jacob;
002
003 import java.io.File;
004 import java.sql.ResultSet;
005 import java.sql.ResultSetMetaData;
006 import java.sql.SQLException;
007 import java.util.ArrayList;
008 import java.util.List;
009
010 import com.andy.db.DBUtil;
011 import com.jacob.com.ComThread;
012
013
014 public class ReadOracleToWard {
015
016 private DBUtil dbUtil = null;
017 // 表格列名数组
018 private String colNames[] = null;
019 // 表格value值
020 private List colValuesList = null;
021
022 private Inerttable inerttable = null;
023
024  
025 public void writeColNames(String colNames[]) {
026   for (int i = 0; i < colNames.length; i++) {
027    inerttable.putTxtToCell(1, 1, (i + 1), colNames[i]);
028   }
029 }
030
031  
032 public void writeColValues(List colValuesList) {
033   String[] colValues = null;
034   int row = 2;
035   for (int i = 0; i < colValuesList.size(); i++) {
036    colValues = colValuesList.get(i);
037    for (int k = 0; k < colValues.length; k++) {
038     inerttable.putTxtToCell(1, row, (k + 1), colValues[k]);
039    }
040    row++;
041   }
042 }
043
044  
045 public ResultSet getResultSet(String tableName) {
046   dbUtil = new DBUtil();
047   String sql = "select * from " + tableName;
048   ResultSet rs = null;
049
050   dbUtil.findConnection();
051   dbUtil.findPreparedStatement(sql);
052   rs = dbUtil.queryDB(sql);
053   System.out.println("getResultSet : rs : " + rs);
054   return rs;
055 }
056
057  
058 public String[] getColNames(ResultSet rs) throws SQLException {
059   System.out.println("getResultSet : rs : " + rs);
060   ResultSetMetaData rsmd = null;
061   if (rs != null) {
062    rsmd = rs.getMetaData();
063    int count = rsmd.getColumnCount();
064
065    colNames = new String[count];
066
067    for (int i = 0; i < count; i++) {
068     colNames[i] = rsmd.getColumnName(i + 1);
069    }
070   } else {
071    colNames = new String[] {};
072   }
073   return colNames;
074 }
075
076  
077 public List getColValuesList(ResultSet rs) throws SQLException {
078   colValuesList = new ArrayList();
079   System.out.println("getResultSet : rs : " + rs);
080   ResultSetMetaData rsmd = null;
081   if (rs != null) {
082    rsmd = rs.getMetaData();
083    int count = rsmd.getColumnCount();
084    String[] colValues = null;
085
086    while (rs.next()) {
087     colValues = new String[count];
088     for (int i = 0; i < count; i++) {
089      String value = rs.getString(i + 1);
090      // 将 数据库中的 null 转化为"null",避免在转化格式时出错
091      if (value == null || "".equals(value)) {
092       value = "null";
093      }
094      colValues[i] = value;
095     }
096     colValuesList.add(colValues);
097    }
098   }
099   return colValuesList;
100 }
101
102  
103 public void writeToWord(String tableName) {
104   try {
105    long begin = System.currentTimeMillis();
106    ResultSet rs = getResultSet(tableName);
107    getColNames(rs);
108    getColValuesList(rs);
109
110    ComThread.InitSTA();
111    inerttable = new Inerttable();
112    inerttable.createNewDocument();
113    inerttable.createTable(colNames.length, colValuesList.size() + 1);
114
115    writeColNames(colNames);
116    writeColValues(colValuesList);
117
118    String docPath = getLocationPath(tableName);
119    inerttable.save(docPath);
120    ComThread.Release();
121
122    long end = System.currentTimeMillis();
123    System.out.println("用时:" + String.valueOf(end - begin));
124   } catch (Exception e) {
125    // TODO: handle exception
126    System.out.println("异常:" + e.getMessage());
127   } finally {
128    dbUtil.closeResource();
129   }
130 }
131
132  
133 public String getLocationPath(String tableName) {
134   // 生成文件路径(在本项目src下)
135   File f = new File(".");
136   f = new File(f, "src/com/andy/jacob");
137
138   if (!f.exists()) {
139    f.mkdirs();
140   }
141   f = new File(f, tableName + ".docx");
142   return f.getAbsolutePath();
143 }
144
145 public static void main(String[] args) {
146   ReadOracleToWard toWard = new ReadOracleToWard();
147   String tableName = "andy_blob";
148   toWard.writeToWord(tableName);
149 }
150 }


此文档是别人写的!我拷贝下来的,方便以后观看!请勿怪!
分享到:
评论

相关推荐

    SSM+freemaker+jacob实现生成word文档并转换为PDF 另一个是错的

    Jacob库的使用是为了在Java环境中操作Word文档。它通过JNI桥接,调用Windows平台上的COM接口来控制Microsoft Word。例如,开发者可以创建一个新的Word文档,插入文本、图片,设置样式,甚至执行复杂的布局操作。在这...

    jacob源码加示例文档

    4. 数据迁移:从旧的数据库或文件系统迁移到新的系统时,可以通过JACOB读取并处理Office文档中的数据。 总结,JACOB作为一个连接Java与COM的强大工具,为开发者提供了灵活的接口,使得在Java平台上操作Windows应用...

    jacob API html格式

    - **自动化Office文档处理**:使用Jacob,你可以编写Java程序来创建、编辑和保存Word文档、Excel电子表格或PowerPoint演示文稿。 - **系统管理**:可以通过Jacob访问Windows注册表,或者控制打印机、网络共享等系统...

    jacob1.1.8工具

    1. **环境配置**:首先需要在系统路径中包含Jacob的动态链接库文件(jacob.dll),同时将对应的jar包添加到Java项目的类路径中。 2. **导入Jacob库**:在Java代码中,通过`import com.jacob.*;`引入Jacob库。 3. *...

    巧用Java程序把Word转换成Html文件

    下面是一个具体的示例代码,展示了如何使用Java和Jacob将Word文档转换为HTML格式: ```java package com; import com.jacob.com.*; import com.jacob.activeX.*; public class WordtoHtml { /** * 将Word文档...

    jacob最新1.19版-免费下载

    1. **Office自动化**:Jacob常用于自动化处理Word、Excel、PowerPoint等Microsoft Office文档,进行数据导入导出、格式转换、报表生成等工作。 2. **ActiveX控件**:通过Jacob,Java应用可以与网页中的ActiveX控件...

    jacob操作word

    - 数据导入导出:例如,从数据库中提取数据并格式化为Word文档,或者将Word文档中的表格数据导入到数据库。 - 文档批处理:例如,批量更改文档的页眉、页脚、样式等。 **标签:“源码 工具”**: - **源码**:...

    jacob操作word,excel(图表,表格等)代码

    使用Jacob,你可以构建自动化报告生成系统,将数据从数据库或其他来源导入到Excel,自动生成图表,然后将这些内容合并到Word模板中,形成最终的报告。例如,可以动态调整图表大小,根据数据更新表格内容,然后在...

    jacob包.rar

    - 数据导入导出:在企业级应用中,经常需要将大量数据导入到数据库,或者将数据库中的数据导出为Excel报表,Jacob可以简化这一过程。 - 报表生成:通过调用Excel的COM接口,Jacob可以自动生成复杂格式的报表,甚至...

    jacob-1.18-M2.rar

    1. **自动化办公文档处理**:Jacob可以调用Microsoft Office的COM接口,创建、读取和修改Word文档、Excel电子表格,实现办公文档的自动化处理。 2. **数据导入导出**:利用Jacob与Excel的集成,可以便捷地将大量...

    Jacob-1.17-m4 最新资源包

    在Jacob-1.17-M4中,可能包含了一个或多个DLL文件,这些文件是Jacob与Windows操作系统通信的桥梁,允许Java应用程序利用COM接口执行例如创建、修改和导出Word文档等操作。 在描述中提到的“jar包”,即Java Archive...

    jacob_1.10.1.zip

    - 自动化办公文档处理:创建、读取、编辑和保存Excel、Word文档。 - 数据导出:将数据库数据导出为Excel格式报表。 - 打印服务:控制打印机进行批量打印任务。 - 图形图像处理:利用Windows图形设备接口(GDI+)进行...

    基于Java的源码-COM中间件 JACOB.zip

    通过JACOB,开发者可以在Java环境中编写代码,而这些代码可以透明地访问Windows系统中的COM组件,例如Excel、Word、数据库驱动等。 JACOB的使用步骤大致如下: 1. **安装和配置**:首先,需要下载JACOB的库文件,...

    Jacob各种版本包的集合

    - **自动化办公文档处理**:可以创建、修改和读取Microsoft Office文档,如Word文档、Excel表格。 - **数据导入导出**:与数据库或其他应用程序交换数据,如通过Excel进行数据导入和导出。 - **控制硬件设备**:...

    最新jacob包和例子jacob包和例子

    2. **数据迁移和整合**:Jacob可以用来从Office应用中提取数据,将其与其他系统集成,比如将Excel数据导入数据库。 3. **测试工具**:在自动化测试中,Jacob可以模拟用户对Office软件的操作,用于功能测试和性能...

    jacob-1.14.3_src.zip

    - Office自动化:例如,使用Jacob可以方便地控制Word、Excel进行文档处理。 - 数据库访问:通过调用ADO.NET等COM组件,实现对数据库的操作。 - Windows系统服务:如系统设置修改、硬件设备控制等。 - 第三方软件...

    jacob-1.18.0-all.zip

    1. **自动化办公软件**:如使用Jacob调用Microsoft Office接口,实现Java程序对Word、Excel等文档的自动化操作,进行数据导入导出、格式转换等任务。 2. **系统集成**:Java应用程序可以通过Jacob与各种Windows特定...

    jacob-1.18

    Jacob广泛应用于需要在Java程序中处理Office文档的场景,比如自动化报表生成、数据导出导入等。此外,对于任何其他可以通过COM接口访问的Windows应用程序或服务,如打印机设置、数据库连接等,Jacob都能提供便捷的...

    JAVA操作微软COM组件的连接工具

    1. **导入 JCOM 类库**:在 Java 项目中,需要导入 JCOM 提供的类库,例如 `com.jacob.activeX.ActiveXComponent`,这个类是与 COM 组件交互的主要入口。 2. **创建 ActiveXComponent 对象**:使用 `...

    SOAOFFICE - 微软 OFFICE 中间件

    3. 需要动态生成指定格式的Word文档的; 4. 需要把html页面中表格导出到excel的; 5. 需要在html页面中套打票据、报表的; 6. 需要在html页面中显示复杂报表,并要求精确打印预览及打印的; 7. 需要动态生成中国式...

Global site tag (gtag.js) - Google Analytics