机房重构——导出excel表格

                                如何导出excel表格

          第一次在做机房的时候记得如何导出excel表格的功能是参考的别人的,在这个做的时候不能再参考别人的了,大事小事,只有自己尽自己最大的努力去做就一定会有所收获。经过查资料,终于写出如何将DataGridView控件中的数据导出到excel表格中。具体步骤如下:

(1)添加引用

    在U层中添加excel表格的引用,如下图:

     机房重构——导出excel表格_第1张图片

(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表格的具体步骤就这些了,如果都写全了,就可以运行出结果啦!

你可能感兴趣的:(机房重构——导出excel表格)