boakineo |
Нужно экспортировать DataGridView в Excel. Microsoft.Office.Interop.Excel не предлагать. |
Возьми класс Excel отсюда:
/topic/620401&pg=1#6558430
и добавь в него следующую функцию:
//ЗАПИСЬ ЗНАЧЕНИЯ В ЯЧЕЙКУ\n public void SetCellValue(int row, int col, string value)\n {\n object xlCell = WorkSheet.GetType().InvokeMember("Cells",\n BindingFlags.GetProperty, null, WorkSheet, new object[] { row, col });\n xlCell.GetType().InvokeMember("Value",\n BindingFlags.SetProperty,null, xlCell, new object[] { value });\n }
В модуле формы добавь:
// ЭКСПОРТ DataGridView\n public void GridExport(DataGridView dgv, string filename, int sheetnumber)\n {\n Excel xlApp = new Excel();\n xlApp.Visible = true;\n xlApp.OpenDocument(filename);\n object xlBook = xlApp.ActiveDocument();\n object xlSheet = xlApp.ActiveSheet(xlBook, sheetnumber);\n object[] columndata = new object[dgv.ColumnCount];\n for (int i = 0; i < dgv.ColumnCount; i++)\n {\n xlApp.SetCellValue(1, i + 1, dgv.Rows[0].Cells[i].OwningColumn.Name.ToString());\n\n }\n\n for (int i = 0; i < dgv.RowCount - 1; i++)\n {\n\n for (int j = 0; j < dgv.ColumnCount; j++)\n {\n xlApp.SetCellValue(i + 2, j + 1, dgv.Rows[i].Cells[j].Value.ToString());\n }\n }\n\n xlApp.CloseDocument();\n xlApp.Quit();\n xlApp.Dispose();\n }
И сам вызов:
GridExport(this.dataGridView1,\n @"C:\\Grid.xls", //<-файл существующий\n 2 //<-номер листа\n );
~\'J\'~