Question

En .NET C #, j'essaie d'ouvrir un modèle Excel, d'ajouter des données et de l'enregistrer en tant que nouveau document. J'essaie d'utiliser le format de document OpenXML. Je n'arrive pas à trouver de conseils sur la façon de procéder. On dirait que toute la documentation parle de la façon d’écrire différentes parties du paquet, mais je ne trouve rien sur ce qu’il faut faire quand vous avez terminé et que vous voulez le sauvegarder.

Quelqu'un sait où je peux trouver cette information? Je dois penser à cela de manière incorrecte car je ne trouve rien d’utile sur ce qui semble être très élémentaire.

Merci

Était-ce utile?

La solution

ExcelPackage fonctionne très bien pour cela. Je ne pense pas que l'auteur principal ait travaillé dessus pendant un moment, mais il a un bon nombre de personnes sur son forum qui règlent tous les problèmes.

            FileInfo template = new FileInfo(Path.GetDirectoryName(Application.ExecutablePath)+"\\Template.xlsx");
        try
        {
            using (ExcelPackage xlPackage = new ExcelPackage(strFileName,template))
            {
                //Enable DEBUG mode to create the xl folder (equlivant to expanding a xlsx.zip file)
                //xlPackage.DebugMode = true;

                ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["Sheet1"];

                worksheet.Name = WorkSheetName;

                foreach (DataRow row in dt.Rows)
                {
                    int c = 1;
                    if (r > startRow) worksheet.InsertRow(r);
                    // our query has the columns in the right order, so simply
                    // iterate through the columns
                    foreach (DataColumn col in dt.Columns)
                    {
                        if (row[col].ToString() != null)
                        {
                            worksheet.Cell(r, c).Value = colValue;
                            worksheet.Column(c).Width = 10;
                        }
                        c++;
                    }
                    r++;
                }

                // change the sheet view to show it in page layout mode
                worksheet.View.PageLayoutView = false;

                // save our new workbook and we are done!
                xlPackage.Save();
                xlPackage.Dispose();
            }
        }

Autres conseils

L’accès aux documents Open XML / SpreadsheetML est loin d’être un exercice trivial. La spécification est grande et complexe. Le "SDK Open XML" " (google it) aide certes, mais nécessite encore une certaine connaissance du standard Open XML pour faire beaucoup.

SpreadsheetGear pour .NET possède une API similaire à Excel et peut lire et écrire Excel Open XML (xlsx ) des documents ainsi que des documents Excel 97-2003 (xls).

Vous pouvez voir des exemples de SpreadsheetGear ici et télécharger une version d'essai gratuite ici .

Clause de non-responsabilité: je possède SpreadsheetGear LLC

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top