您的位置:首页 > 其它

在VS2005中,将DataGridView中的数据导入Excel文件

2006-08-17 16:36 337 查看



/**//// <summary>


/// 将DataGridView中的数据导入Excel中,并显示Excel应用程序,




/// 注意调用该方法必须有安装Excel应用程序,并且假定DataGridView中绑定的是一个DataTable


/// </summary>


/// <param name="grid"></param>


/// <param name="ReportTitle"></param>




public static void ExportDataGridToExcel(DataGridView grid, string ReportTitle)




...{


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 = 2;


colIndex = 0;




Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);




if (grid.Rows.Count > 0)




...{


Microsoft.Office.Interop.Excel.Range range = xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, grid.Columns.Count]);


range.MergeCells = true;


xlApp.ActiveCell.FormulaR1C1 = ReportTitle;


xlApp.ActiveCell.Font.Size = 18;


xlApp.ActiveCell.Font.Bold = true;




foreach (DataGridViewColumn colu in grid.Columns)




...{


colIndex = colIndex + 1;


xlApp.Cells[2, 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




...{


Microsoft.Office.Interop.Excel.Range range = xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, myTable.Columns.Count]);


range.MergeCells = true;


xlApp.ActiveCell.FormulaR1C1 = ReportTitle;


xlApp.ActiveCell.Font.Size = 18;


xlApp.ActiveCell.Font.Bold = true;




//将表中的栏位名称填到Excel的第一行




foreach (DataColumn Col in myTable.Columns)




...{


colIndex = colIndex + 1;


xlApp.Cells[2, 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[2, 1], xlApp.Cells[2, colIndex]).Font.Bold = true;


xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 1;




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;


}




}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: