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 63 64 65 66 67 68 69 70
| private void btnExporter_Click(object sender, EventArgs e)
{
string filename = GetFileName();
//Exit code if no file was selected
if (string.IsNullOrEmpty(filename))
return;
Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
xla.Visible = false; //Change to false so Excel isn't visible
Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;
int i = 1;
int j = 1;
foreach (ListViewItem comp in lvListeTypes.Items)
{
ws.Cells[i, j] = comp.Text.ToString();
//MessageBox.Show(comp.Text.ToString());
foreach (ListViewItem.ListViewSubItem drv in comp.SubItems)
{
ws.Cells[i, j] = drv.Text.ToString();
j++;
}
j = 1;
i++;
}
SaveWorkbook(wb, filename);
//Close Excel (don't forget this otherwise Excel will keep running in memory)
xla.Quit();
xla = null;
MessageBox.Show(string.Format("Data is save to {0}", filename));
}
private string GetFileName()
{
string filename = string.Empty;
SaveFileDialog dialog = new SaveFileDialog();
dialog.InitialDirectory = @"C:\"; // change this to your own default location. Save to the root of C:\ is not a good practice.
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK)
{
filename = dialog.FileName;
}
return filename;
}
private void SaveWorkbook(Microsoft.Office.Interop.Excel.Workbook wb, string filename)
{
//Remove the extension from the filename. The SaveAs will add the approriate extension it self (at least it does with Excel 2007)
string localfilename = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(filename), System.IO.Path.GetFileNameWithoutExtension(filename));
// If you are sure to override the file
if (System.IO.File.Exists(localfilename))
System.IO.File.Delete(localfilename);
//wb.SaveAs(localfilename, XlFileFormat.xlExcel12); //generates a xlsb file (Excel 2007)
//wb.SaveAs(myfilename, XlFileFormat.xlExcel9795); //generates a excel 97 xls file
wb.SaveAs(localfilename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
} |
Partager