2 pièce(s) jointe(s)
Ecrire des élement d'une liste dans des cellules différentes d'un fichier excel en utilisant NPOI (C#)
Je suis stagiaire, je suis en train de programmer en C# et je dois écrire dans un fichier excel existant des éléments d'une liste dont je vais connaître et ecrire en dur les élements pour l'instant. Cet excel est en fait des résultats recueillis après une analyse chimique appelée ICP de 2 machines différentes. Mon problème est que je n'arrive pas à écrire correctement dans le fichier excel, j'utilise la librairie NPOI et je veux écrire dans la première colonne de la deuxième page du fichier à côté des lignes déja remplies.
Pièce jointe 593760
En fait j'arrive a écrire dans le fichier excel dans les lignes que je souhaite mais par contre c'est toujours le même élément de la liste qui est écrit dans la ligne. Or moi ce que je souhaite, c'est d'écrire chaque élément de ma liste sur une ligne dans la colonne 1 à côté des lignes remplies. Par exemple, l'élément 1 à la ligne 5 ; l'élément 2 à la ligne 6, etc...
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace excel
{
class Class2
{
public static void WriteExcel()
{
List<int> testnumber = new List<int>();
testnumber.Add(75847);
testnumber.Add(52505);
testnumber.Add(56565);
testnumber.Add(78452);
string pathSource = @"C:\Users\Lionel84100\Desktop\Excel\C-4542454.xlsx";
IWorkbook templateWorkbook;
using (FileStream fs = new FileStream(pathSource, FileMode.Open, FileAccess.Read))
{
templateWorkbook = new XSSFWorkbook(fs);
}
string sheetName = "Formatage_IM";
var sheet = templateWorkbook.GetSheet(sheetName) ?? templateWorkbook.CreateSheet(sheetName);
for (int i = 4; i < 13; i++)
{
var dataRow = sheet.GetRow(i) ?? sheet.CreateRow(i);
for (int j = 0; j < 1; j++)
{
var cell = dataRow.GetCell(0) ?? dataRow.CreateCell(0);
cell.SetCellValue(testnumber[0]);
}
}
using (FileStream fs = new FileStream(pathSource, FileMode.Create, FileAccess.Write))
{
templateWorkbook.Write(fs);
}
}
}
} |
Pouvez-vous m'aidez à trouver une solution s'il vous plaît ?
Je vous joins à ce message le fichier excel.
Merci de votre compréhension.