Hallo zusammen,
ich möchte gerne ein vorhandenes Exceldokument öffnen und ein paar Werte dort ein Einfügen. Ich kann leider nicht das CSV-Datenformat nehmen, da in dem Dokument überall Formeln und Formatierungen vorhanden sind.
Ich weiß das es eine JCom-Brigde gibt. Ich bekomme dieses leider nur noch nicht hin
Ich habe die JCom.jar in mein Projekt eingefügt und habe den beiligenen DemoCode genommen.
DemoCode:
Wenn ich diesen Starte bekomme ich folgene Fehlermeldung:
Muss ich noch irgendeine Libarary einbinden?
Ich besitze bereits schon Office 2007. Kann es auch daran liegen, dass ich kein Office2003 installiert habe? Oder ist meine JCom.jar fehlerhaft?
Ich hoffe ihr könnt mir weiterhelfen
gruß
tobi
ich möchte gerne ein vorhandenes Exceldokument öffnen und ein paar Werte dort ein Einfügen. Ich kann leider nicht das CSV-Datenformat nehmen, da in dem Dokument überall Formeln und Formatierungen vorhanden sind.
Ich weiß das es eine JCom-Brigde gibt. Ich bekomme dieses leider nur noch nicht hin
DemoCode:
Code:
import jp.ne.so_net.ga2.no_ji.jcom.excel8.*;
import jp.ne.so_net.ga2.no_ji.jcom.*;
import java.io.File;
import java.util.Date;
/* sample program using Excel lapper */
class testJCom {
public static void main(String[] args) throws Exception {
ReleaseManager rm = new ReleaseManager();
try {
System.out.println("EXCEL startup...");
// if already started, open new window
ExcelApplication excel = new ExcelApplication(rm);
excel.Visible(true);
// display any information
System.out.println("Version="+excel.Version());
System.out.println("UserName="+excel.UserName());
System.out.println("Caption="+excel.Caption());
System.out.println("Value="+excel.Value());
ExcelWorkbooks xlBooks = excel.Workbooks();
ExcelWorkbook xlBook = xlBooks.Add(); // create new book
// enumurate all files
System.out.println("set infomation of files in current directory to cell ...");
ExcelWorksheets xlSheets = xlBook.Worksheets();
ExcelWorksheet xlSheet = xlSheets.Item(1);
ExcelRange xlRange = xlSheet.Cells();
xlRange.Item(1,1).Value("filename" );
xlRange.Item(2,1).Value("size" );
xlRange.Item(3,1).Value("last modified time");
xlRange.Item(4,1).Value("is directory");
xlRange.Item(5,1).Value("is file");
xlRange.Item(6,1).Value("can read");
xlRange.Item(7,1).Value("can write");
File path = new File("./");
String[] filenames = path.list();
for(int i=0; i<filenames.length; i++) {
File file = new File(filenames[i]);
System.out.println(file);
xlRange.Item(1,i+2).Value( file.getName() ); // filename(no path)
xlRange.Item(2,i+2).Value( (int)file.length() ); // filesize
xlRange.Item(3,i+2).Value( new Date(file.lastModified()) ); // last modified time
xlRange.Item(4,i+2).Value( file.isDirectory()?"Yes":"No" ); // directory ?
xlRange.Item(5,i+2).Value( file.isFile()?"Yes":"No" ); // file ?
xlRange.Item(6,i+2).Value( file.canRead()?"Yes":"No" ); // can read ?
xlRange.Item(7,i+2).Value( file.canWrite()?"Yes":"No" ); // can write ?
}
String expression = "=Sum(B2:B"+(filenames.length+1)+")";
System.out.println("embed equation, calculate sum of filesize: "+expression);
xlRange.Item(1,filenames.length+2).Value("sum");
xlRange.Item(2,filenames.length+2).Formula(expression);
xlRange.Columns().AutoFit(); // fit columns
// comment out, if print out.
// output default printer.
// System.out.println("print out...");
// xlSheet.PrintOut();
// comment out, if book save to file.
// if no path, save to(My Documents)
// System.out.println("save to file... (My Documents)\\testExcel.xls");
// xlBook.SaveAs("testExcel.xls");
xlBook.Close(false,null,false);
excel.Quit();
System.out.println("thank you .");
}
catch(Exception e) { e.printStackTrace(); }
finally { rm.release(); }
}
}
Wenn ich diesen Starte bekomme ich folgene Fehlermeldung:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jcom in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.<clinit>(IDispatch.java:287)
at testing.testJCom.main(testJCom.java:15)
EXCEL startup...
Muss ich noch irgendeine Libarary einbinden?
Ich besitze bereits schon Office 2007. Kann es auch daran liegen, dass ich kein Office2003 installiert habe? Oder ist meine JCom.jar fehlerhaft?
Ich hoffe ihr könnt mir weiterhelfen
gruß
tobi