2008-12-17 10 views
4

J'aimerais automatiser la saisie de données dans des feuilles de calcul Excel. Les données de l'utilisateur existeront sur un site Web, et lorsque l'utilisateur le demande, ces données devront être injectées dans une feuille de calcul Excel. La complication est que le format de la feuille de calcul Excel peut varier considérablement entre les utilisateurs - il sera défini par l'utilisateur.Injection de données par style de fusion et publipostage dans des feuilles de calcul Excel existantes?

J'ai pensé à cela comme un problème de templating - la feuille de calcul Excel fournit le modèle et la tâche d'injecter des données dans les cellules utilisateur spécifiques définies dans ce modèle.

Je l'ai regardé et xlwt xlrd pour python, ainsi que JExcelApi et POI-HSSF pour Java. Ils semblent pouvoir fonctionner, mais étant donné que je veux simplement mettre des valeurs dans certaines cellules, elles semblent être exagérées. Je suis également inquiet de réécrire la feuille de calcul de l'utilisateur après le traitement; semble être une occasion d'introduire des erreurs dans le processus.

Est-il possible de dire Excel pour fusionner les données d'une feuille dans une autre? Je pense que je pourrais produire une feuille de calcul simple qui a seulement les données, et en quelque sorte obtenir Excel pour le fusionner dans la feuille de calcul existante de l'utilisateur.

sens? De meilleures approches?

Répondre

2

jXLS est peut-être une option. Vous définissez un fichier XLS en tant que modèle, puis vous fusionnez vos données.

Aperçu rapide here

http://jxls.sourceforge.net/

+0

Très intéressant, ressemble beaucoup à ce que je cherchais. Je vais essayer. – Parand

0

Vous pouvez regarder dans une bibliothèque tierce partie appelée Aspose.Cells. Il est disponible pour Java et .Net et permet un contrôle très granulaire des documents Excel. La grande chose à propos de cette bibliothèque est qu'elle n'utilise pas l'automatisation (ce qui pourrait être désastreux dans un environnement multithread comme le web).

Je n'ai pas personnellement utilisé Apose.Cells, mais j'ai utilisé Aspose.Words (pour .Net) pour créer des documents Word fusionnés contenant plusieurs milliers d'enregistrements et d'images, et cela a fonctionné parfaitement.

1

WinHttpRequest (http://msdn.microsoft.com/en-us/library/aa384045(VS.85).aspx) peut convenir, vous pouvez utiliser le document et ainsi de suite. Voici un extrait du lien.

Dim HttpReq As Object 

' Create the WinHTTPRequest ActiveX Object.' 
Set HttpReq = New WinHttpRequest 

' Open an HTTP connection.' 
HttpReq.Open "GET", "http://microsoft.com", False 

' Send the HTTP Request.' 
HttpReq.Send 

' Get all response text.' 
Text1.Text = HttpReq.ResponseText 
Questions connexes