J'ai une série de feuilles de calcul Excel contenant chacune au moins une page de données et une page de graphique créée à partir des données. Je dois capturer (pas régénérer à partir des données) le tableau existant comme une image Web amicale. Est-ce possible via Java ou .Net? Je sais que les choses POI (Java) ne le feront pas (ou du moins on me dit, je ne l'ai pas essayé moi-même).Comment exporter des graphiques à partir d'Excel en tant que graphiques
Répondre
Avez-vous essayé d'utiliser la méthode Chart.Export?
L'exemple de l'aide est:
Worksheets("Sheet1").ChartObjects(1).Chart. Export _
FileName:="current_sales.gif", FilterName:="GIF"
De mémoire, je pense que vous pouvez exporter en PNG ainsi.
Les images de graphique ne sont pas stockées dans les classeurs, vous avez donc besoin d'un composant capable de générer des diagrammes compatibles Excel.
vous permettra de charger des classeurs Excel, éventuellement ajouter de nouvelles valeurs/formules/formats/etc ..., calculer, puis obtenir une image à partir d'une plage de cellules ou d'un graphique.
Vous pouvez voir quelques exemples here et télécharger l'essai gratuit here si vous voulez l'essayer vous-même.
Disclaimer: Je possède SpreadsheetGear LLC
Vous pouvez convertir ou copier des graphiques (graphiques) à l'aide de J XL ou de cellules Aspose (Aspose n'est pas libre).
C'est l'extrait de code pour extraire graphique Excel à l'image
public class ExportChartToImage
{
public static void main(String[] args) throws Exception
{
//Start Excel
Application excelApp = new Application();
excelApp.setVisible(true);
//Create test workbook
Workbook workbook = excelApp.createWorkbook("/home/tejus/Desktop/Chart Test");
//Get the first (and the only) worksheet
final Worksheet worksheet1 = workbook.getWorksheet(1);
//Fill-in the first worksheet with sample data
worksheet1.getCell("A1").setValue("Date");
worksheet1.getCell("A2").setValue("March 1");
worksheet1.getCell("A3").setValue("March 8");
worksheet1.getCell("A4").setValue("March 15");
worksheet1.getCell("B1").setValue("Customer");
worksheet1.getCell("B2").setValue("Smith");
worksheet1.getCell("B3").setValue("Jones");
worksheet1.getCell("B4").setValue("James");
worksheet1.getCell("C1").setValue("Sales");
worksheet1.getCell("C2").setValue("23");
worksheet1.getCell("C3").setValue("17");
worksheet1.getCell("C4").setValue("39");
excelApp.getOleMessageLoop().doInvokeAndWait(new Runnable()
{
public void run()
{
final Variant unspecified = Variant.createUnspecifiedParameter();
final Int32 localeID = new Int32(LocaleID.LOCALE_SYSTEM_DEFAULT);
Range sourceDataNativePeer = worksheet1.getRange("A1:C4").getPeer();
_Worksheet worksheetNativePeer = worksheet1.getPeer();
IDispatch chartObjectDispatch = worksheetNativePeer.chartObjects(unspecified, localeID);
ChartObjectsImpl chartObjects = new ChartObjectsImpl(chartObjectDispatch);
ChartObject chartObject = chartObjects.add(new DoubleFloat(100), new DoubleFloat(150), new DoubleFloat(300), new DoubleFloat(225));
_Chart chart = chartObject.getChart();
chart.setSourceData(sourceDataNativePeer, new Variant(XlRowCol.xlRows));
BStr fileName = new BStr("/home/tejus/Desktop/chart.gif");
Variant filterName = new Variant("gif");
Variant interactive = new Variant(false);
chart.export(fileName, filterName, interactive);
chart.setAutoDelete(false);
chart.release();
chartObject.setAutoDelete(false);
chartObject.release();
chartObjects.setAutoDelete(false);
chartObjects.release();
chartObjectDispatch.setAutoDelete(false);
chartObjectDispatch.release();
}
});
System.out.println("Press 'Enter' to terminate the application");
System.in.read();
//Close the MS Excel application.
boolean saveChanges = false;
workbook.close(saveChanges);
boolean forceQuit = true;
excelApp.close(forceQuit);
}
}
i utilisé J Excel
- 1. Enregistrement de graphiques d'objets Java en tant que fichier XML
- 2. Des solutions graphiques et graphiques complètes ...?
- 3. construire des graphiques en Java
- 4. Comment dessiner des graphiques opengl à partir de différents threads?
- 5. Optimisation des graphiques Java
- 6. graphiques et graphiques sur l'iPhone
- 7. Graphiques vectoriels en Silverlight
- 8. Exporter des graphiques MS vers PDF et Excel
- 9. comment dessiner des graphiques en constante évolution
- 10. Comment écrire des programmes graphiques
- 11. comment créer des graphiques en jsf?
- 12. effacement des graphiques sprite?
- 13. Y a-t-il des graphiques javascript disponibles qui soient aussi bons que des graphiques flexibles?
- 14. Dessiner des graphiques dans VBScript
- 15. Graphiques/graphiques interactifs au format PDF
- 16. Convertir des graphiques en image en C#
- 17. Peut-on exporter des données graphiques en pdf en utilisant des scripts PHP?
- 18. graphiques à barres empilées
- 19. Est-ce que les bibliothèques graphiques ou graphiques Web prennent en charge les barres d'erreur?
- 20. Cocoa: créer des graphiques
- 21. Excel 2003 Graphiques: données graphiques trop complexes
- 22. Création d'un PowerPoint avec des graphiques à partir d'Access
- 23. Comment imprimer et exporter lorsque vous utilisez des graphiques Dundas en VB ou C#
- 24. Intervalles d'axe des graphiques en argent
- 25. Bibliothèque Ruby pour générer des graphiques à partir de texte?
- 26. Générer des graphiques de terminal
- 27. Comment tracer dynamiquement différents graphiques
- 28. Graphiques - trouver des données communes
- 29. Graphiques ou graphiques dans Windows Mobile 6
- 30. Dessiner des graphiques à l'intérieur d'un UIButton
Qu'est-ce que l'application excelApp = new Application(); ? Je ne peux pas voir cela dans l'API JExcel. Et qu'est-ce que "excelApp.getOleMessageLoop(). DoInvokeAndWait (new Runnable()" S'il vous plaît envisager de donner des commentaires appropriés dans le code pour aider les autres à comprendre. –