2010-10-20 7 views
6

J'ai besoin d'insérer (incorporer) un objet fichier (fichier .txt) dans une feuille MS Excel en utilisant Java. L'exigence est de ne pas mettre le contenu du fichier .txt dans Excel. Au lieu de cela, j'ai besoin de mettre le fichier entier en tant qu'objet incorporé dans Excel. J'utilise le pot Apache POI pour cela.Comment insérer (incorporer) un objet fichier dans une feuille Excel

J'ai vu tous les exemples présents dans poi-3.7-beta1 mais n'a pas pu trouver d'exemple, pour insérer (incorporer) un objet fichier dans une feuille Excel. J'ai vu les classes POIFSFileSystem mais je n'ai pas pu trouver la classe appropriée à utiliser pour ce problème. Je suis confronté à un problème lors de l'intégration d'un objet fichier dans Excel. S'il vous plaît aidez-moi à faire cela en utilisant Apache POI ou tout autre pot.

+0

Est-ce même possible l'intégration avec l'interface utilisateur Excel, ou avec VBA (derrière les coulisses de programmation encore directement à Excel)? --- Si la réponse est "oui", recherchez dans la documentation d'Excel, ou dans les exemples et sources VBA, comment procéder dans VBA, puis visitez le code source de POI et vérifiez s'il est implémenté n'importe où. --- Si la réponse est "oui" à nouveau, suivez les utilisations des implémentations pour trouver les fonctions de niveau supérieur que vous pouvez utiliser, et ce qu'elles font, puis trouvez une implémentation pour ce dont vous avez besoin en fonction des fonctions qui sont disponible. – XenoRo

+0

Vous ne savez pas comment VBA "translatable" est à Java, mais vous pouvez bien sûr utiliser le Macro Recorder dans Excel pour le faire, puis regardez le code VBA. Cela vous aidera peut-être à vous donner une idée? – BruceWayne

Répondre

0

Voici le code 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 

Consultez également cette question: Embed files into Excel using Apache POI

+0

Je ne sais pas comment votre solution VBA, bien qu'intéressante, a quelque chose à voir avec une demande pour y parvenir en utilisant Java. –

1

Vous pouvez le manipuler par Visual Basic Script, stocker juste quelque part et l'appeler de java .

Exemple de 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); 
Questions connexes