gpt4 book ai didi

java - 从 Java 使用宏读取 Excel

转载 作者:行者123 更新时间:2023-12-01 15:57:54 24 4
gpt4 key购买 nike

我有Excel。我为 Excel 文件创建宏以从其他资源读取数据。该宏每秒运行一次并更新其 Excel 单元格。

现在,我想构建java程序来每秒读取excel数据。我尝试过 Apache POI,但是在我检查 documentation 后ti不支持用宏读取excel文件。

我从一些资源中读到Java Com Bridge(JCOB)可用于通过宏读取Excel。我已经尝试过了,但是每次我尝试我的代码时单元格值仍然没有更新。

import com.jacob.com.*;
import com.jacob.activeX.*;

public 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:\\tutorial\\ApachePoi\\ratesource.xls";
OpenExcel(file, false); // do not show false to open Excel
System.out.println(GetValue("B46"));
}

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) },// whether to open read-only
new int[1]).toDispatch();
} catch (Exception e) {
e.printStackTrace();
}

}

// Read value
private static String GetValue(String position) {
if (workbook == null) {
System.out.println("workbook is null");
}
sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch();
Object cell = Dispatch.invoke(sheet, "Range", Dispatch.Get,
new Object[]{position}, new int[1]).toDispatch();
String value = Dispatch.get((Dispatch) cell, "Value").toString();

return value;
}
//1.3638356164383563
//1.3638356164383563




private static void SetValue (String position, String type, String value)
{

}



}

最佳答案

我不熟悉能够执行您所描述的操作的 Excel 引擎。

您是否考虑过在运行电子表格时改为与 Excel 对话并询问其值?我相信您可以使用 ODBC 来做到这一点。

另一种方法可能是创建工作表的 OpenOffice 版本并与 OpenOffice 对话。

关于java - 从 Java 使用宏读取 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4698812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com