gpt4 book ai didi

java - 如何使用 Jacob (Java) 将其另存为 Excel 文件

转载 作者:行者123 更新时间:2023-12-01 15:44:23 27 4
gpt4 key购买 nike

我正在尝试另存为 Excel 文件,但出现错误:无法将名称映射到 dispid: FileSaveAs。

private ActiveXComponent objExcel = new ActiveXComponent("Excel.Application");
excelObject = objExcel.getObject();
Dispatch.put(excelObject, "Visible", new Variant(false));
workbook = objExcel.getProperty("Workbooks").toDispatch();
workbook = Dispatch.call(workbook, "Open", filename).toDispatch();
Dispatch oExcel = Dispatch.call(objExcel, "Workbooks").getDispatch();
Dispatch.call(workbook, "FileSaveAs", filename, new Variant(51));

变体的参数取自:http://msdn.microsoft.com/en-us/library/bb241279(v=office.12).aspx

谁能告诉我代码问题出在哪里?谢谢

最佳答案

我不确定我是否使用了正确的方法来做到这一点,但它有效

public Boolean savesAS(String path, String nameFile){

ComThread.InitSTA();

ActiveXComponent excel = new ActiveXComponent("Excel.Application");
excel.setProperty("Visible", new Variant(true));
Object workbooks = excel.getProperty("Workbooks").toDispatch();
Object workbook;

try {
workbook = Dispatch.call((Dispatch)workbooks, "Open", path).toDispatch();
} catch (Exception e) {
showMessageDialog(null,"Unable to open " + path);
return false;
}

try {
//here you can modify the value of "new Variant(int)" with other number
Dispatch.call((Dispatch)workbook, "SaveAs", nameFile ,new Variant(2));
} catch (Exception e) {
showMessageDialog(null,"Unable to convert " + path);
return false;
}

Dispatch.call((Dispatch)workbook, "Close", new Variant(false));

excel.invoke("Quit", new Variant[0]);
excel.safeRelease();
ComThread.Release();

return true;
}

关于java - 如何使用 Jacob (Java) 将其另存为 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7389074/

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