Pergunta

Em .NET C # Eu estou tentando abrir um modelo do Excel, adicionar alguns dados e salvá-lo como um novo documento. Eu estou tentando usar o formato de documento OpenXML. Eu não consigo encontrar qualquer orientação sobre como fazer isso. Parece que todas as conversações de documentação sobre como escrever várias partes do pacote, mas não consigo encontrar nada sobre o que fazer quando você está feito e quer salvá-lo.

Alguém sabe onde posso encontrar essa informação? Devo estar pensando sobre isso incorretamente, porque eu não estou achando nada de útil sobre o que parece ser muito básico.

Graças

Foi útil?

Solução

ExcelPackage funciona muito bem para isso. Não tem sido trabalhado pelo autor principal Eu não acho que por pouco tempo, mas tem uma boa seguinte de pessoas em seu fórum que trabalho todos os problemas para fora.

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

Outras dicas

documentos SpreadsheetML Acessando Open XML / está longe de ser um exercício trivial. A especificação é grande e complexa. O "Open XML SDK" (google) definitivamente ajuda, mas ainda requer algum conhecimento do padrão Open XML para fazer muita coisa.

SpreadsheetGear for .NET tem uma API semelhante ao Excel e pode ler e escrever Excel Open XML (xlsx ) documentos, bem como 97-2003 (XLS) documentos do Excel.

Você pode ver algumas amostras SpreadsheetGear aqui e baixar uma versão gratuita aqui .

Disclaimer: eu próprio SpreadsheetGear LLC

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top