Ich habe mir das mitgelieferte Excel-Beispiel der neuesten Version von Java Com Bridge (Jacob-1.16) angesehen und war ein wenig enttäuscht, weil sie auf einer brandneuen Excel-Datei erstellt und funktioniert. fein.
Dispatch sheet = Dispatch.get(workbook, "Worksheets").toDispatch();
Dispatch.call(sheet, "Select", new Object[]{"Sheet2"}).toDispatch();
< /code>
Dieser Code generiert die folgende Ausnahme:
com.jacob.comFailException: Der Name kann den Dispid nicht zuordnen: Arbeitsblätter < /p>
2.; Konnte das Arbeitsbuch nicht speichern: < /p>
// Save the open workbook as "C:\jacob-1.16-M1\Test1.xls" file:
Dispatch.call(workbook, "SaveAs", new Variant("C:\\jacob-1.16-M1\\Test1.xls"),new Variant("1"));
< /code>
Dieser Code generiert die folgende Ausnahme:
com.jacob.comFailException: Der Name kann den Dispid nicht zuordnen: Saveas < /p>
3.; Ich weiß nicht, wie ich mit den folgenden einfachen, aber sehr häufigen Excel -Operationen beginnen kann, was die Java -Syntax für Java com Bridge betrifft: < /p>
(hier enthalten den Excel -VBA -Code, den ich in Java implementieren möchte) < /p>
Auswahl:
Range ("A4". /> Kopieren Sie den ausgewählten Bereich in Zwischenablage: < /p>
Selection.Copy
< /code>
Wählen Sie einen Multi-Zell-Bereich aus, um zu kopieren, um: < /p>
zu kopierenRange("D9:D17").Select
< /code>
Inhalt des Zwischenabletts in die Auswahl einfügen: < /p>
ActiveSheet.Paste
< /code>
Eingebildet ein Blatt: < /p>
Sheets("Sheet2").Select
Sheets("Sheet2").Name = "MySheet2"
< /code>
Formatzellen, Beispiel für Text: < /p>
Selection.NumberFormat = "@"
< /code>
Zeilen löschen: < /p>
Rows(intI).Select
Selection.Delete Shift:=xlUp
< /code>
Und möglicherweise ... < /p>
Sortieren Sie eine Auswahl: < /p>
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
< /code>
Finden Sie die letzte Zelle in Blatt: < /p>
ActiveSheet.Cells(65536, 1).End(xlUp).Select
intLastCellRow = Selection.Row
< /code>
Vielen Dank für Ihre Hilfe.import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class TestJACOBWithExcel {
public static void main(String[] args) {
String strInputDoc = "C:\\jacob-1.16-M1\\JACOBWithExcel.xls"; // file to be opened.
ComThread.InitSTA();
ActiveXComponent xl = new ActiveXComponent("Excel.Application"); // Instance of application object created.
try {
// Get Excel application object properties in 2 ways:
System.out.println("version=" + xl.getProperty("Version"));
System.out.println("version=" + Dispatch.get(xl, "Version"));
// Make Excel instance visible:
Dispatch.put(xl, "Visible", new Variant(true));
// Open XLS file, get the workbooks object required for access:
Dispatch workbook = xl.getProperty("Workbooks").toDispatch();
Dispatch.call(workbook, "Open", new Variant(strInputDoc),new Variant("1"));
Dispatch sheet = Dispatch.get(workbook, "Worksheets").toDispatch();
Dispatch.call(sheet, "Select", new Object[]{"Sheet2"}).toDispatch();
// put in a value in cell A22 and place a a formula in cell A23:
Dispatch a22 = Dispatch.invoke(sheet, "Range", Dispatch.Get, new Object[] { "A22" }, new int[1]).toDispatch();
Dispatch a23 = Dispatch.invoke(sheet, "Range", Dispatch.Get, new Object[] { "A23" }, new int[1]).toDispatch();
Dispatch.put(a22, "Value", "123.456");
Dispatch.put(a23, "Formula", "=A22*2");
// Get values from cells A1 and A2
System.out.println("a22 from excel:" + Dispatch.get(a22, "Value"));
System.out.println("a23 from excel:" + Dispatch.get(a23, "Value"));
// Save the open workbook as "C:\jacob-1.16-M1\Test1.xls" file:
Dispatch.call(workbook, "SaveAs", new Variant("C:\\jacob-1.16-M1\\Test1.xls"),new Variant("1"));
// Close the Excel workbook without saving:
Variant saveYesNo = new Variant(false);
Dispatch.call(workbook, "Close", saveYesNo);
} catch (Exception e) {
e.printStackTrace();
} finally {
// Quit Excel:
// xl.invoke("Quit", new Variant[] {});
ComThread.Release();
}
}
}
Ich habe mir das mitgelieferte Excel-Beispiel der neuesten Version von Java Com Bridge (Jacob-1.16) angesehen und war ein wenig enttäuscht, weil sie auf einer brandneuen Excel-Datei erstellt und funktioniert. fein.[code]Dispatch sheet = Dispatch.get(workbook, "Worksheets").toDispatch(); Dispatch.call(sheet, "Select", new Object[]{"Sheet2"}).toDispatch(); < /code>
Dieser Code generiert die folgende Ausnahme: com.jacob.comFailException: Der Name kann den Dispid nicht zuordnen: Arbeitsblätter < /p>
2.; Konnte das Arbeitsbuch nicht speichern: < /p>
// Save the open workbook as "C:\jacob-1.16-M1\Test1.xls" file: Dispatch.call(workbook, "SaveAs", new Variant("C:\\jacob-1.16-M1\\Test1.xls"),new Variant("1")); < /code>
Dieser Code generiert die folgende Ausnahme: com.jacob.comFailException: Der Name kann den Dispid nicht zuordnen: Saveas < /p>
3.; Ich weiß nicht, wie ich mit den folgenden einfachen, aber sehr häufigen Excel -Operationen beginnen kann, was die Java -Syntax für Java com Bridge betrifft: < /p>
(hier enthalten den Excel -VBA -Code, den ich in Java implementieren möchte) < /p>
Auswahl: Range ("A4". /> Kopieren Sie den ausgewählten Bereich in Zwischenablage: < /p>
Selection.Copy < /code>
Wählen Sie einen Multi-Zell-Bereich aus, um zu kopieren, um: < /p>
zu kopierenRange("D9:D17").Select < /code>
Inhalt des Zwischenabletts in die Auswahl einfügen: < /p>
Vielen Dank für Ihre Hilfe.import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant;
public class TestJACOBWithExcel { public static void main(String[] args) {
String strInputDoc = "C:\\jacob-1.16-M1\\JACOBWithExcel.xls"; // file to be opened.
ComThread.InitSTA();
ActiveXComponent xl = new ActiveXComponent("Excel.Application"); // Instance of application object created.
try { // Get Excel application object properties in 2 ways: System.out.println("version=" + xl.getProperty("Version")); System.out.println("version=" + Dispatch.get(xl, "Version"));
// Make Excel instance visible: Dispatch.put(xl, "Visible", new Variant(true));
// Open XLS file, get the workbooks object required for access: Dispatch workbook = xl.getProperty("Workbooks").toDispatch(); Dispatch.call(workbook, "Open", new Variant(strInputDoc),new Variant("1"));
Dispatch sheet = Dispatch.get(workbook, "Worksheets").toDispatch(); Dispatch.call(sheet, "Select", new Object[]{"Sheet2"}).toDispatch();
// put in a value in cell A22 and place a a formula in cell A23: Dispatch a22 = Dispatch.invoke(sheet, "Range", Dispatch.Get, new Object[] { "A22" }, new int[1]).toDispatch();
Dispatch a23 = Dispatch.invoke(sheet, "Range", Dispatch.Get, new Object[] { "A23" }, new int[1]).toDispatch();
// Get values from cells A1 and A2 System.out.println("a22 from excel:" + Dispatch.get(a22, "Value")); System.out.println("a23 from excel:" + Dispatch.get(a23, "Value"));
// Save the open workbook as "C:\jacob-1.16-M1\Test1.xls" file: Dispatch.call(workbook, "SaveAs", new Variant("C:\\jacob-1.16-M1\\Test1.xls"),new Variant("1"));
// Close the Excel workbook without saving: Variant saveYesNo = new Variant(false); Dispatch.call(workbook, "Close", saveYesNo);
Ich habe versucht, eine DLL -Funktion von Java mit Jacob ohne Erfolg aufzurufen. Ich habe die DLL mit Regasm, wie hier beschrieben, registriert- Mein Code:
Version
PHP – 7.4.33
Laravel – 6.20.44
maatwebsite/excel - 3.1.56
Beschreibung
Ich habe versucht, WithMultipleSheets zu verwenden, um mehrere Blätter aus Excel zu importieren, aber es verwendet...
Ich habe Code, um eine dauerhafte Authentifizierung mit .htaccess durchzuführen, was funktioniert, aber nur beim Zugriff auf Verzeichnisse oder Unterverzeichnisse, z. B. / funktioniert, aber...
Ich habe gesehen, dass es viele Fragen zu Swift und Objective-C Bridge gibt, darunter diese, diese und diese ... Aber keine davon hat mir bisher geholfen.
Wie man H5 (Bridge.net Fork) verwendet, um C# zu JavaScript für node.js (ohne Webdateien) zu kompilieren. /> Der Server befindet sich in TypeScript (node.js)