///
///将datagridview中的数据导入到一张表中
///
///
///返回一张表
///
private DataTable exporeDataToTable(DataGridView dataGridView)
{
//将datagridview中的数据导入到表中
DataTable tempTable = new DataTable("tempTable");
//创建列
for (int column = 0; column < dataGridView.Columns.Count; column++)
{
DataColumn tempColumn = new DataColumn(dataGridView.Columns[column].HeaderText, typeof(string));
tempTable.Columns.Add(tempColumn);
}
//添加datagridview中行的数据到表
for (int row = 0; row < dataGridView.Rows.Count; row++)
{
DataRow tempRow = tempTable.NewRow();
for (int column = 0; column < dataGridView.Columns.Count; column++)
{
tempRow[column] = dataGridView.Rows[row].Cells[column].Value;
}
tempTable.Rows.Add(tempRow);
}
return tempTable;
}
private void buttonStuOut_Click(object sender, EventArgs e)
{
//将datagridView中的数据导出到一张表中
DataTable tempTable = this.exporeDataToTable(this .dataGridView1 );
//导出信息到Excel表
Microsoft.Office.Interop.Excel.ApplicationClass myExcel;
Microsoft.Office.Interop.Excel.Workbooks myWorkBooks;
Microsoft.Office.Interop.Excel.Workbook myWorkBook;
Microsoft.Office.Interop.Excel.Worksheet myWorkSheet;
char myColumns;
Microsoft.Office.Interop.Excel.Range myRange;
object[,] myData = new object[500, 35];
int i, j;//j代表行,i代表列
myExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
myExcel.Visible = true;
if (myExcel ==null)
{
MessageBox.Show("本地Excel程序无法启动!请检查您的Microsoft Office正确安装并能正常使用","提示");
return;
}
myWorkBooks = myExcel.Workbooks;
myWorkBook = myWorkBooks.Add(System.Reflection.Missing.Value);
myWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)myWorkBook.Worksheets[1];
myColumns = (char)(this.dataGridView1.Columns.Count + 64);//设置列
myRange = myWorkSheet.get_Range("A4", myColumns.ToString() + "5");//设置列宽
int count =1;//第一列为空
//设置列名
foreach (DataColumn myNewColumn in tempTable.Columns )
{
myData[0, count] = myNewColumn.ColumnName;
count = count + 1;
}
//输出datagridview中的数据记录并放在一个二维数组中
j = 1;
foreach (DataRow myRow in tempTable.Rows)//循环行
{
for (i =1; i <= tempTable .Columns .Count ; i++)//循环列
{
myData[j, i] = myRow[i-1].ToString();
}
j++;
}
//将二维数组中的数据写到Excel中
myRange = myRange.get_Resize(tempTable .Rows .Count + 1 ,tempTable .Columns .Count );//创建列和行
myRange.Value2 = myData;
myRange.EntireColumn.AutoFit();
myWorkSheet.Cells[2, 2] = "符合您选择条件的数据信息";
Microsoft.Office.Interop.Excel.Range myRange22 = myWorkSheet.get_Range("B2","B2");
myRange22.Font.Bold = true;
myRange22 .Font .Size ="20";
myWorkSheet.Cells[3, 1] = "导出日期:" + DateTime.Now.ToString();
}