Domanda

In .NET C # sto cercando di aprire un modello Excel, aggiungere alcuni dati e salvarlo come nuovo documento. Sto cercando di utilizzare il formato del documento OpenXML. Non riesco a trovare alcuna guida su come farlo. Sembra che tutta la documentazione parli di come scrivere varie parti nel pacchetto, ma non riesco a trovare nulla su cosa fare quando hai finito e vuoi salvarlo.

Qualcuno sa dove posso trovare queste informazioni? Devo pensare a questo in modo errato perché non trovo nulla di utile su ciò che sembra essere molto semplice.

Grazie

È stato utile?

Soluzione

ExcelPackage funziona piuttosto bene. Non è stato elaborato dall'autore principale che non penso per un po ', ma ha un buon seguito di persone sul suo forum che risolvono qualsiasi problema.

            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();
            }
        }

Altri suggerimenti

L'accesso ai documenti Open XML / SpreadsheetML è tutt'altro che banale. Le specifiche sono ampie e complesse. L'SDK Open XML " (google it) sicuramente aiuta, ma richiede ancora una certa conoscenza dello standard Open XML per fare molto.

SpreadsheetGear per .NET ha un'API simile a Excel e può leggere e scrivere Excel Open XML (xlsx ) nonché documenti Excel 97-2003 (xls).

Puoi vedere alcuni esempi di SpreadsheetGear qui e scaricare una prova gratuita qui .

Disclaimer: possiedo SpreadsheetGear LLC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top