如何导出excel表格
第一次在做机房的时候记得如何导出excel表格的功能是参考的别人的,在这个做的时候不能再参考别人的了,大事小事,只有自己尽自己最大的努力去做就一定会有所收获。经过查资料,终于写出如何将DataGridView控件中的数据导出到excel表格中。具体步骤如下:
(1)添加引用
在U层中添加excel表格的引用,如下图:
(2)编写代码:
因为在整个系统中,有好几个窗体中用到了导出excel表格的方法,所以,我们不妨把这段程序写在一个类中,在使用的时候直接调用一下。类中的代码如下:
首先,引用相应的命名空间,如下:
using System.Windows.Forms; //添加引用窗体
using Excel = Microsoft.Office.Interop.Excel;
对excel表格的命名空间的引用,必须写成这样的,要不会报错的。其次,类中的代码:
public class ToExcel
{
public void DatatoExcel(DataGridView dgv)
{
if (dgv.Rows .Count ==0) //判断控件中是否有数据。
{
MessageBox.Show("没有数据");
return;
}
Excel.Application excel = new Excel.Application(); //实例化
excel.Application.Workbooks.Add(true );
excel.Visible = true;
for (int i = 0; i < dgv.ColumnCount ; i++)
{
excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText; //添加第一行的内容=表头
}
for (int i = 0; i < dgv .RowCount ; i++)
{
for (int j = 0; j < dgv .ColumnCount ; j++)
{
if (dgv[j, i].ValueType == typeof(string)) //判断控件中的内容的值是否是字符串类型的。
{
excel.Cells[i + 2, j + 1] = "" + dgv[j, i].Value.ToString(); //把空件中对应行的内容添加到excel中,并进行数据类型的转换。
//cells[i,j] 表示表中对应的行和列,i为行,j为列。
}
else
{
excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
}
excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
}
}
}
}
对于以上中的代码,经过试验,在第二个for循环中,如果去掉里边的if ...else..部分也是正确的,这里只是涉及到了,表格中数据类型的转换,没有也是可以的。
导出excel表格的具体步骤就这些了,如果都写全了,就可以运行出结果啦!