2009-10-27 11 views
2

Je crée une feuille Excel à partir d'une feuille Tempelte Excel.Comment créer une feuille excel à partir d'une feuille Excel excel par programmation?

J'ai un code

try 
    { 
     FileInfo newFile = new FileInfo(@"D:\ExcelFromTemplate.xlsx"); 
     FileInfo template = new FileInfo(@"D:\template.xlsx"); 

     using (ExcelPackage xlPackage = new ExcelPackage(newFile,template)) 
     { 

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

      ExcelCell cell = worksheet.Cell(5,1); 
      cell.Value = "15"; 

      //worksheet.Cell(5, 1).Value = "Soap"; 

      //xlPackage.Save(); 
      Response.Write("Excel file created successfully"); 
     } 

    } 
    catch (Exception ex) 
    { 
     Response.WriteFile(ex.InnerException.ToString()); 
    } 

ce code crée le nouveau fichier excel même que le modèle fichier Excel, mais ne pouvait pas ajouter la valeur de la cellule. Pourquoi?

Je l'avais essayé de 2 façons comme dans le code ci-dessus pour la cellule (5,1). Mais la feuille Excel crée sans valeur de cellule d'écriture. Comment pouvons-nous l'ajouter.

Cordialement, Girish

+0

Pensez à utiliser les réponses aux questions précédentes http://stackoverflow.com/questions/1624095/how-to-add-dropdown-in-excel-sheet-programmatically/1624157#1624157 http://stackoverflow.com/questions/1623266/comment-créer-excel-feuille-données-directement-de-l'application-net/1623292 # 1623292 –

+0

pourquoi avez-vous commenté l'appel à .Save()? Avez-vous eu une erreur? Si oui: quelle erreur était-ce? Autorisations à nouveau ?? –

+0

Juste téléchargé le paquet ExcelPackage et a travaillé sur le problème. –

Répondre

2

Vous devez enregistrer le fichier pour conserver les modifications apportées. Utilisation de save()

try 
     { 
      FileInfo newFile = new FileInfo(@"D:\ExcelFromTemplate.xlsx"); 
      FileInfo template = new FileInfo(@"C:\Example.xlsx"); 

      using (ExcelPackage xlPackage = new ExcelPackage(newFile , template)) 
      { 

       //Added This part 
       foreach (ExcelWorksheet aworksheet in xlPackage.Workbook.Worksheets) 
       { 
        aworksheet.Cell(1, 1).Value = aworksheet.Cell(1, 1).Value; 
       } 

       ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["My Data"]; 

       ExcelCell cell = worksheet.Cell(5, 1); 
       cell.Value = "15"; 

       //worksheet.Cell(5, 1).Value = "Soap"; 

       xlPackage.Save(); 
       //Response.Write("Excel file created successfully"); 
      } 

     } 
     catch (Exception ex) 
     { 
      //Response.WriteFile(ex.InnerException.ToString()); 
     } 

Vous avez eu le problème. Le problème est inhérent à ExcelPackage. Pour le même, vous devez ouvrir chaque feuille et faire quelques changements pour qu'elle soit enregistrée.

Recherchez sur le forum pour plus d'explications.

+0

Chaque fois que j'avais ajouté xlPackage.Save(); alors il me donne l'erreur "Référence d'objet non définie à une instance d'un objet." Quelle est la solution???? – Girish

+0

Désolé pour le retard était occupé avec quelque chose. Ce package Excel est-il lié à http://excelpackage.codeplex.com/ –