Zugriff auf Blätter, Sparen von Excel-Dateien, Java, Java Com Bridge (Jacob Jacob-1.16)Java

Java-Forum
Anonymous
 Zugriff auf Blätter, Sparen von Excel-Dateien, Java, Java Com Bridge (Jacob Jacob-1.16)

Post by Anonymous »

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: Select all

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();
}

}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post