C # générer un file excel et écrire sur les cellules

Je travaille sur un projet qui exécute des requêtes MySQL sur DB. Je dois alimenter les résultats d'une feuille excel que je vais générer à la volée. J'avais commencé le code, en utilisant les didacticiels msdn ainsi que les informations que j'ai trouvées sur stackoverflow, mais l'application de la procédure me laisse avec

"La reference d'object n'est pas définie à une instance d'un object."

À ce stade, je viens d'avoir débuté le code de base, car je voulais que cela fonctionne avant de commencer à créer la feuille de calcul complète dans le code.

var excelApp = new Excel.Application(); excelApp.Visible = true; Excel.Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet; ((Excel.Range)workSheet.Cells[1, 1]).Value = "Print Date:"; 

Si je peux fournir plus d'informations, requestz simplement. J'apprécie énormément toute information ou information que vous pouvez me fournir!

Je dirais que la workSheet est définie comme nulle car excelApp.ActiveSheet n'existe pas encore.

Voici un code qui créera un object de feuille de calcul que vous pouvez utiliser …

 var application = new Application(); var workbooks = application.Workbooks; var workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); var worksheets = (Sheets)workbook.Worksheets; var worksheet = worksheets[1]; 

Quelques choses à noter lorsque vous travaillez avec Excel:

  • Relancez tous les objects avec System.Runtime.InteropServices.Marshal.ReleaseComObject(object) lorsque vous l'avez terminé. Si vous ne le faites pas, Excel ne quittera pas lorsque vous aurez terminé.
  • N'utilisez pas les references à double point (c'est-à-dire object1.object2.value). Si vous le faites, vous ne pouvez pas le publier correctement comme ci-dessus.
  • Les index commencent toujours à partir de 1, pas 0 (dans mon expérience de toute façon).

La raison pour laquelle vous obtenez cette erreur est que vous n'avez créé aucune feuille de calcul dans l'application. Essayez de faire cela.

Excel.Worksheet newWorksheet;

newWorksheet = (Excel.Worksheet) excelApp.Worksheets.Add ();