alpachinois | Bonjour,
Je génère un fichier Excel à partir d'un tableau de string. Jusque là pas de problème mais ce que je ne comprend pas c'est qu'une fois terminé, le fichier enregistré a une taille de plus de 2.28 Mo alors qu'il n'y a que 22 lignes et 2 colonnes 8O même si les chaines de caractères sont longues car quand je fais un copy paste sur un fichier créé à la main, le fichier enregistré ne fait que 15 Ko. Je n'ai fait simplement que remplir avec des valeurs des cellules et un ensuite utiliser la méthode Save() pour le workbook.
Code de la méthode qui rempli l'excel
Code :
- public void ReportWithOneSegItem(string[] tab, int pos, int endPosition, string title, Excel.Worksheet ws)
- {
- ws.Cells[1, 1] = "Nom du BUS";
- if (pos == 0) ws.Cells[1, 2] = title;
- else ws.Cells[1, 2] = title + " p" + pos.ToString();
-
- //all value column in text format
- ws.get_Range("A1", "B65000" ).NumberFormat = "@";
- for (int i = 0; i < tab.Length; i++)
- {
- string[] val = tab[i].Split('|');
- if(pos == 0)
- {
- ws.Cells[i + 2, 1] = val[1];
- ws.Cells[i + 2, 2] = val[0];
- }
- else
- {
- ws.Cells[i + 2, 1] = val[1];
- if (endPosition == 0) ws.Cells[i + 2, 2] = val[0].Substring(pos - 1);
- else ws.Cells[i + 2, 2] = val[0].Substring(pos - 1, endPosition - pos);
- }
- }
- //width of column
- ws.get_Range("A1", "B65000" ).Columns.AutoFit();
-
- /* if user you want to rename the excel worksheet
- try
- {
- ws.Name = title;
- }
- catch (Exception nameSheet)
- {
- ("Le nom de cette feuille existe déjà." );
- }
- */
- }
|
Pour la méthode appelante, pareil ce simple code me créé déjà un classeur vide avec une taille normale de 13 ko
Code :
- Workbook wk = app.Workbooks.Add(Type.Missing);
- wk.SaveAs(saveFileDialog1.FileName, XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing,
- false, false, Excel.XlSaveAsAccessMode.xlNoChange,
- Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
|
Le problème est que je suis amené à chaque clique de format d'augmenter la taille des saisies donc je risque de me retrouver avec un fichier à 50 Mo .
Merci d'avance. Message édité par alpachinois le 12-08-2009 à 14:21:00
|