Bonjour
J'ai un probleme d'affichage d'un fichier excel sur deux listview en fonction de la parité de la ligne.
jusque là tout va bien mais l'affichage pose proble car , il l'affiche mais un peu n'impote comment.
voici mon code:
using System.Data;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using Excel = Microsoft.Office.Interop.Excel;
namespace E14_Cours_3;
public partial class Form1 : Form
{
public static Excel.Application? excelApp;
public static Excel.Workbook? excelBook;
public static Excel.Worksheet? excelSheet;
public static Excel.Range? excelRange;
private StreamingContext j;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
excelApp = new Excel.Application();
if (excelApp == null)
{
MessageBox.Show("Désolé, cette application nécessite Excel. Veuillez l'installer et réessayer.");
Application.Exit();
}
else
{
try
{
excelBook = excelApp.Workbooks.Open(AppContext.BaseDirectory + "Test.xlsx");
excelSheet = excelBook.Worksheets[1];
}
catch (Exception ex)
{
MessageBox.Show("Une erreur s'est produite.");
Application.Exit();
}
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
excelApp!.Quit();
GC.WaitForPendingFinalizers();
GC.Collect();
}
private void btnLireExcel_Click(object sender, EventArgs e)
{
int lastRow = excelSheet!.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
int lastCol = excelSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Column;
//MessageBox.Show("le nombre de ligne: " + lastRow + " nombre colonne: " + lastCol);
for (int i = 1; i <= lastRow; i++)
{
Excel.Range RowRange = excelSheet.Rows[i];
string[] rowData = new string[lastCol];
//Recuperer les données de la ligne
for (int j = 1; j <= lastCol; j++)
{
Excel.Range cell = RowRange.Cells[j];
if (cell.Value != null)
{
rowData[j - 1] = cell.Value.ToString();
}
}
ListViewItem item = new ListViewItem(rowData);
//Ajout de l'élément en fonction de la parité de la ligne
if (i % 2 == 0)
{
LVCourse.Items.Add(item);
}
else
{
LVPatineur.Items.Add(item);
}
}
}
}
Merci