求个 jacob操作word表格模板的实例。稍微简单点的。

解决方案 »

  1.   

    操作WORD的似乎比较麻烦,EXCEL的可否?
      

  2.   

    代码也是参考别人的,稍作修改。
    package com.yanzhen.xls2pdf.one;import com.jacob.com.*;
    import com.jacob.activeX.*;class ExcelTest {
    private static ActiveXComponent xl;
    private static Dispatch workbooks = null;
    private static Dispatch workbook = null;
    private static Dispatch sheet = null;
    private static String filename = null;
    private static boolean readonly = false; public static void main(String[] args) {
    String file = "d:\\test.xls";
    OpenExcel(file, false);// false为不显示打开Excel
    SetValue("A1", "Value", "2");  // 在需要的单元格处赋值
    System.out.println(GetValue("A3"));
    CloseExcel(false);
    } // 打开Excel文档
    private static void OpenExcel(String file, boolean f) {
    try {
    filename = file;
    xl = new ActiveXComponent("Excel.Application");
    xl.setProperty("Visible", new Variant(f));
    workbooks = xl.getProperty("Workbooks").toDispatch();
    workbook = Dispatch.invoke(
    workbooks,
    "Open",
    Dispatch.Method,
    new Object[] { filename, new Variant(false),
    new Variant(readonly) },// 是否以只读方式打开
    new int[1]).toDispatch();
    } catch (Exception e) {
    e.printStackTrace();
    }
    } // 关闭Excel文档
    private static void CloseExcel(boolean f) {
    try {
    Dispatch.call(workbook, "Save");
    Dispatch.call(workbook, "Close", new Variant(f));
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    xl.invoke("Quit", new Variant[] {});
    }
    } // 写入值
    private static void SetValue(String position, String type, String value) {
    sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch();
    Dispatch cell = Dispatch.invoke(sheet, "Range", Dispatch.Get,
    new Object[] { position }, new int[1]).toDispatch();
    Dispatch.put(cell, type, value);
    } // 读取值
    private static String GetValue(String position) {
    Dispatch cell = Dispatch.invoke(sheet, "Range", Dispatch.Get,
    new Object[] { position }, new int[1]).toDispatch();
    String value = Dispatch.get(cell, "Value").toString(); return value;
    }
    }
      

  3.   

    额也只用过aspose.word,关注中
    try
    {
    File file = new File(d://test.doc);
    FileOutputStream os = new FileOutputStream(file);
    Document doc = new Document();
    DocumentBuilder builder = new DoucumentBuilder(doc);builder.setBold(true);
    builder.writeln("\t\t\t申请方案");
    builder.writeln();
    builder.startTable();
    builder.getCellFormat().getBoders().setLineStryle(1);
    bullder.builder.getCellFormat().getBorders().setLineWidth(0);builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
    builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
        
    builder.insertCell();
    builder.getCellFormat().setVerticalMerge(CellMerge.FIRST);
    builder.setBold(false);
    builder.getCellFormat().setWidth(60);
    builder.write("申\n请\n概\n况\n");
        
    builder.insertCell();
    builder.getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);
    builder.setBold(false);
    builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
    builder.getCellFormat().setWidth(400);
    builder.write("用户名称:" + "");
    builder.endRow();
        
    builder.insertCell();
    builder.getCellFormat().setWidth(60);
    builder.getCellFormat().setVerticalMerge(CellMerge.PREVIOUS);
    builder.insertCell();
    builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
    builder.getCellFormat().setWidth(400);
    builder.write("申请编号:" + "");
    builder.endRow();
        
    builder.insertCell();
    builder.getCellFormat().setWidth(60);
    builder.getCellFormat().setVerticalMerge(CellMerge.PREVIOUS);
    builder.insertCell();
    builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
    builder.getCellFormat().setWidth(400);
    builder.write("申请类型:" + "");
    builder.endRow();
        
    builder.insertCell();
    builder.getCellFormat().setWidth(60);
    builder.getCellFormat().setVerticalMerge(CellMerge.PREVIOUS);
    builder.insertCell();
    builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
    builder.getCellFormat().setWidth(400);
    builder.write("申请单位:" + "");
    builder.endRow();
        
    builder.endTable();
    doc.getMailMerge().deleteFields();
    doc.save(os, SaveFormat.DOC);
    }
    catch(Exception e)
    {
    //
    }
      

  4.   

    可以用dsoframer.ocx  这个控件,我最近也在搞这个东西  烦的要死