/**/ /// <summary>/// 将DataGrid中的数据导入Excel中,并显示Excel应用程序,/// 注意调用该方法必须有安装Excel应用程序,并且假定DataGridView中绑定的是一DataTable/// </summary>/// <param name="grid"></param> public static void ExportDataGridToExcel(DataGridView grid) ... { System.Data.DataTable myTable = (System.Data.DataTable)grid.DataSource; try ...{ Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); int rowIndex; int colIndex; rowIndex = 1; colIndex = 0; Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true); if (grid.Rows.Count > 0) ...{ foreach (DataGridViewColumn colu in grid.Columns) ...{ colIndex = colIndex + 1; xlApp.Cells[1, colIndex] = colu.HeaderText; } //得到的表所有行,赋值给单元格 for (int row = 0; row < myTable.Rows.Count; row++) ...{ rowIndex = rowIndex + 1; colIndex = 0; for (int col = 0; col < grid.Columns.Count; col++) ...{ colIndex = colIndex + 1; xlApp.Cells[rowIndex, colIndex] = grid.Rows[row].Cells[col].Value; } } } else ...{ //将表中的栏位名称填到Excel的第一行 foreach (DataColumn Col in myTable.Columns) ...{ colIndex = colIndex + 1; xlApp.Cells[1, colIndex] = Col.ColumnName; } //得到的表所有行,赋值给单元格 for (int row = 0; row < myTable.Rows.Count; row++) ...{ rowIndex = rowIndex + 1; colIndex = 0; for (int col = 0; col < myTable.Columns.Count; col++) ...{ colIndex = colIndex + 1; xlApp.Cells[rowIndex, colIndex] = grid.Rows[row].Cells[col].Value; } } } xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, colIndex]).Font.Bold = true; xlApp.Cells.EntireColumn.AutoFit(); xlApp.Cells.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; xlApp.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; xlApp.Visible = true; } catch (Exception e) ...{ throw e; } }