Экспорт Listview1 в excel
Я не могу показаться, чтобы получить мыши listview1 имена столбцов, чтобы показать в Excel
столбцы в ListView вам заполнить из частный недействительными метода GetData()
try { listView1.Items.Clear(); listView1.Columns.Clear(); listView1.Columns.Add("PID", 80);//0 listView1.Columns.Add("Product", 100);//1 listView1.Columns.Add("Category", 100);//2 listView1.Columns.Add("Bin", 100);//3 listView1.Columns.Add("Brand", 100);//4 listView1.Columns.Add("Manufacturer", 100);//5 listView1.Columns.Add("Stock", 100);//6 listView1.Columns.Add("Stock Take", 100);//7 listView1.Columns.Add("ShortFall", 100);//8 listView1.Columns.Add("IN/OUT", 100);//9 listView1.Columns.Add("Comment", 100);//10 listView1.Columns.Add("Date", 100);//11 string sql = @"Select * from tblStocktake where Product like '" + txtSearch.Text + "%'"; cm = new SqlCommand(sql, cn); dr = cm.ExecuteReader(); while (dr.Read()) { lst = listView1.Items.Add(dr[0].ToString()); lst.SubItems.Add(dr[1].ToString()); lst.SubItems.Add(dr[2].ToString()); lst.SubItems.Add(dr[3].ToString()); lst.SubItems.Add(dr[4].ToString()); lst.SubItems.Add(dr[5].ToString()); lst.SubItems.Add(dr[6].ToString()); lst.SubItems.Add(dr[7].ToString()); lst.SubItems.Add(dr[8].ToString()); lst.SubItems.Add(dr[9].ToString()); lst.SubItems.Add(dr[10].ToString()); lst.SubItems.Add(dr[11].ToString()); } dr.Close(); }
Что я уже пробовал:
using (SaveFileDialog sfds = new SaveFileDialog() {Filter = "Excel Workbook|*.xls",ValidateNames = true }) { if (sfds.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.Application app1 = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = app1.Workbooks.Add(XlSheetType.xlWorksheet); Worksheet ws = (Worksheet)app1.ActiveSheet; app1.Visible = false; ws.Cells[1, 1] = "PID"; ws.Cells[1, 2] = "Product"; ws.Cells[1, 3] = "Category"; ws.Cells[1, 4] = "Bin"; ws.Cells[1, 5] = "Brand"; ws.Cells[1, 6] = "Manufacturer"; ws.Cells[1, 7] = "Stock"; ws.Cells[1, 8] = "Stock Take"; ws.Cells[1, 9] = "Shortfall"; ws.Cells[1, 10] = "IN/Out"; ws.Cells[1, 11] = "Comment"; ws.Cells[1, 12] = "Date"; int i = 2; int x = 1; int x2 = 1; int colNum = listView1.Columns.Count; foreach (ColumnHeader ch in listView1.Columns) { ws.Cells[x2, x] = ch.Text; x++; } foreach (ListViewItem item in listView1.Items) { ws.Cells[i = 1] = item.SubItems[0].Text; ws.Cells[i = 2] = item.SubItems[1].Text; ws.Cells[i = 3] = item.SubItems[2].Text; ws.Cells[i = 4] = item.SubItems[3].Text; ws.Cells[i = 5] = item.SubItems[4].Text; ws.Cells[i = 6] = item.SubItems[5].Text; ws.Cells[i = 7] = item.SubItems[6].Text; ws.Cells[i = 8] = item.SubItems[7].Text; ws.Cells[i = 9] = item.SubItems[8].Text; ws.Cells[i = 10] = item.SubItems[9].Text; ws.Cells[i = 11] = item.SubItems[10].Text; ws.Cells[i = 12] = item.SubItems[11].Text; i++; } wb.SaveAs(sfds.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing); app1.Quit(); MessageBox.Show("Your data has been successfully exported", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
Richard MacCutchan
В чем же заключается реальная проблема? Какие результаты вы видите на рабочем листе?
Member 13894223
когда я экспортирую его, он показывает только первую строку listview и не показывает заголовок
Richard MacCutchan
ws.Cells[i = 1] = item.SubItems[0].Text;
Посмотрите на выражение в первом наборе квадратных скобок.
Richard Deeming
Хороший улов! Вы должны опубликовать это как решение. :)
Richard MacCutchan
Вряд ли что-то особенное на самом деле.
ZurdoDev
Отладьте свой код, и вы увидите, что именно происходит.