Saving Excel 2007 documentos
-
05-07-2019 - |
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
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