2010-10-20 18 views
6

Ho bisogno di inserire (incorporare) un oggetto file (file .txt) nel foglio MS Excel usando Java. Il requisito non è quello di mettere il contenuto del file .txt in Excel. Invece ho bisogno di mettere l'intero file come un oggetto incorporato in Excel. Sto usando un jar POI Apache per questo.Come inserire (incorporare) un oggetto file nel foglio Excel

Ho visto tutti gli esempi presenti in poi-3.7-beta1 ma non sono riuscito a trovare alcun esempio, per inserire (incorporare) un oggetto file in foglio Excel. Ho visto le classi POIFSFileSystem ma non sono riuscito a trovare la classe appropriata da utilizzare per questo problema. Sono di fronte a un problema nell'inclusione dell'oggetto file in Excel. Per favore aiutatemi a farlo usando Apache POI o qualsiasi altro jar.

+0

è tale embedding possibile anche quando l'interfaccia utente di Excel, o con VBA (dietro le quinte di programmazione ancora direttamente in Excel)? --- Se la risposta è "sì", cerca nella documentazione di Excel, negli esempi e nelle fonti VBA, come farlo in VBA, quindi visita il codice sorgente del POI e verifica se è implementato ovunque. --- Se la risposta è di nuovo "sì", monitorare gli usi delle implementazioni per scoprire le funzioni di livello più alto che è possibile utilizzare, e cosa fanno, e quindi creare un'implementazione per ciò che è necessario in base alle funzioni che sono a disposizione. – XenoRo

+0

Non sei sicuro di come VBA "traducibile" sia per Java, ma potresti ovviamente usare il Macro Recorder in Excel per fare ciò, quindi guardare il codice VBA. Forse questo ti aiuterà a darti un'idea? – BruceWayne

risposta

0

Ecco il codice VBA Macro Recorder:

Sub InsertObject() 
    ActiveSheet.OLEObjects.Add(Filename:="C:\Placeholder.txt", _ 
     Link:=False, DisplayAsIcon:=True, IconFileName:= _ 
     "C:\Windows\system32\packager.dll", IconIndex:=0, IconLabel:= _ 
     "C:\Placeholder.txt").Select 
End Sub 

controllare anche questa domanda: Embed files into Excel using Apache POI

+0

Non sono chiaro in che modo la tua soluzione VBA, sebbene interessante, abbia qualcosa a che fare con una richiesta su come ottenere ciò usando Java. –

1

Si poteva manipolarlo tramite Visual Basic Script, basta riporlo da qualche parte e chiamare da Java .

Esempio di script:

Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("myExcel.xlsm") 
objExcel.ActiveWorkbook.Close 
objExcel.Application.Quit 
WScript.Quit 

Java:

cmd = "you_path\\myVBS.vbs"; 
Runtime.getRuntime().exec(cmd); 
Problemi correlati