//创建excel并写入保存,再打印
public class ExcelTest {
private static ActiveXComponent xl;
private static Object workbooks = null;
private static Object workbook = null;
private static Object sheet = null;
private static String filename = null;
private static boolean readonly = false;
public static void main(String[] args) {
Date now = new Date();
Long nowtime = now.getTime();
//excel目录需要预先创建
String path = "c:\\excel\\"+nowtime+".xls";
createAndSave(path);
printExcel(path);
}
// 读取值
private static String GetValue(String position) {
Object cell = Dispatch.invoke((Dispatch) sheet, "Range", Dispatch.Get,
new Object[] { position }, new int[1]).toDispatch();
String value = Dispatch.get((Dispatch) cell, "Value").toString();
return value;
}
private static void createAndSave(String path){
ActiveXComponent xl = new ActiveXComponent("Excel.Application");
Object xlo = xl.getObject();
try {
System.out.println("version=" + xl.getProperty("Version"));
System.out.println("version="
+ Dispatch.get((Dispatch) xlo, "Version"));
xl.setProperty("Visible", new Variant(true));
Object workbooks = xl.getProperty("Workbooks").toDispatch();
Object workbook = Dispatch.get((Dispatch) workbooks, "Add")
.toDispatch();
Object sheet = Dispatch.get((Dispatch) workbook, "ActiveSheet")
.toDispatch();
Object a1 = Dispatch.invoke((Dispatch) sheet, "Range",
Dispatch.Get, new Object[] { "A1" }, new int[1])
.toDispatch();
Object a2 = Dispatch.invoke((Dispatch) sheet, "Range",
Dispatch.Get, new Object[] { "A2" }, new int[1])
.toDispatch();
Dispatch.put((Dispatch) a1, "Value", "123.456");
Dispatch.put((Dispatch) a2, "Formula", "=A1*2");
Dispatch.call((Dispatch) workbook, "SaveAs", path);
System.out.println("a1 from excel:"
+ Dispatch.get((Dispatch) a1, "Value"));
System.out.println("a2 from excel:"
+ Dispatch.get((Dispatch) a2, "Value"));
// Variant f = new Variant(false);
// Dispatch.call((Dispatch) workbooks, "Close", f);
// Dispatch.call((Dispatch) workbook, "Close");
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}
private static boolean printExcel(String path){
ComThread.InitSTA();
ActiveXComponent xl = new ActiveXComponent("Excel.Application");
try {
// System.out.println("version=" + xl.getProperty("Version"));
Dispatch.put(xl, "Visible", new Variant(false));
Dispatch workbooks = xl.getProperty("Workbooks").toDispatch();
Dispatch excel = Dispatch.call(workbooks, "Open", path).toDispatch();
Dispatch.get(excel, "PrintOut");
System.out.println("printOver");
Dispatch.call(excel, "Close");
return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
ComThread.Release();
}
return false;
}
}
分享到:
相关推荐
在Java编程环境中,有时我们需要对Excel文件进行读取和写入操作,这通常是数据分析、报表生成或数据导入导出等任务的一部分。Jacob库提供了一种有效的方法来实现这个目标,尤其是在处理老版本的Microsoft Excel(如...
标题提到的"Jacob Word excel 转PDF 合并PDF文件"是指使用Jacob库来将Microsoft Word和Excel文档转换为PDF格式,并进一步合并多个PDF文件。Jacob(Java Advanced COM Bridge)是一个Java库,它允许Java应用程序与...
这意味着你可以使用Java代码来控制那些只提供了COM接口的软件,如Microsoft Excel,从而执行诸如创建、读取、修改或转换文件等操作。 要使用JACOB进行Excel到PDF的转换,你需要遵循以下步骤: 1. **引入JAR包**:...
2. **读取Excel文件**:使用Jacob的`ActiveXComponent`和`Dispatch`类打开并读取Excel文件。通过`Dispatch.get()`和`Dispatch.call()`方法来访问和操作Excel对象,例如获取工作簿、工作表和单元格的数据。 3. **...
在Excel处理方面,Jacob同样提供了丰富的功能,可以读取和修改电子表格数据,创建图表,设置单元格样式等。以下是一些基本操作: 1. 打开Excel应用和工作簿: ```java ActiveXComponent excelApp = new ...
总结来说,"jacob_excel_reader-master"项目提供了一种利用Jacob库在Java中高效读取Excel文件的方案。通过深入理解Jacob的工作原理和项目中的API设计,开发者可以更好地应对大量Excel数据处理的需求,提升工作效率。...
Jacob提供了这样的桥梁,使得Java开发者可以利用Excel的功能,包括读取、写入和转换Excel文件。 Excel到PDF的转换通常涉及以下几个步骤: 1. **初始化Jacob**: 在Java代码中,首先需要加载Jacob的动态链接库(DLL...
这个"用Jacob自动化操作Excel"的示例是作者原创的,旨在展示如何利用Jacob库在Java程序中读写、编辑Excel文件。下面将详细阐述Jacob库的基本使用方法以及在自动化操作Excel时可能涉及的关键知识点。 1. **Jacob简介...
Jacob库是Java和COM接口之间的桥梁,它使得开发者能够通过Java代码直接调用Windows操作系统中的COM组件,这在处理与Office相关的任务时非常有用,如读取、编辑和打印文档。Jacob库提供了一个JNI(Java Native ...
标题“jacob读取word表格”涉及到的是使用Jacob库来操作Microsoft Word文档,特别是从中读取表格数据。Jacob是一个Java到COM桥接库,允许Java应用程序调用COM组件,如Microsoft Office的应用程序。 在Java中,直接...
通过Jacob,开发者可以创建、读取、修改Excel文件,执行复杂的计算,甚至运行宏,而无需依赖像Apache POI这样的纯Java解决方案。 以下是使用Jacob操作Excel的一些关键知识点: 1. **安装和配置Jacob**: 首先,你...
5. **Excel读写**:参照“使用JACOB进行Excel读写控制.txt”,学习如何使用Jacob读取Excel数据、修改单元格内容、处理公式和图表。 6. **处理Word文档的高级功能**:阅读“使用Jacob来处理Word文档.txt”,掌握如何...
通过以上步骤,开发者可以使用Jacob在Java程序中实现对Excel的复杂操作,如读取、修改、创建、合并和分析数据等。在实际项目中,可以封装成工具类,以提高代码的可复用性和维护性。例如,提供的`JacobExcelTool.java...
使用Jacob控制Excel主要涉及到创建Excel对象、打开/保存/关闭工作簿、读写单元格等操作。 ##### 3.1 创建Excel对象 在Java中,可以通过`ActiveXComponent`类创建一个指向Excel应用程序的对象。例如: ```java ...
在这个主题下,我们将深入探讨如何使用Jacob来操作Word和Excel,特别是在生成报告、处理数据和展现图表方面。 1. **Jacob简介**: Jacob全称为Java COM Bridge,它通过JNI(Java Native Interface)技术实现了Java...
例如,你可以使用Jacob来读取、写入或修改Excel工作簿。以下是一些基本操作: 1. **创建Excel对象**:与Word一样,你需要先创建Excel应用实例。 2. **打开或创建工作簿**:可以打开现有的Excel文件或创建新的工作...
纵向读取数据绘制chart 设置线条气泡颜色 黄色 Dispatch seriesChartFillFormat Dispatch get series "Fill" toDispatch ; Dispatch seriesForeColor Dispatch get seriesChartFillFormat &...
Jacob库不仅限于打印,还可以用于读写Excel文件、执行Excel宏等操作,极大地扩展了Java在Windows环境下处理Office文档的能力。 总之,Java通过Jacob库与打印机通信打印Excel文档是一种实用的技术,它结合了Java的跨...
Java Jacob调用AutoCAD读取文件是一种常见的技术实践,它允许开发者通过Java程序与AutoCAD进行交互,实现对DWG或DXF等AutoCAD文件的读取操作。Jacob(Java和COM的桥梁)是一个Java库,它使得Java应用程序能够直接...