0%

利用Excel打印学生信息报表

  • 来源:明日科技
  • 利用Excel打印学生信息报表


    实例说明

    Microsoft Excel是微软公司提供的用于办公管理的应用软件,具有强大的报表统计等功能。本实例在打印学生信息时,通过将数据导入到Excel文件中进行打印。运行本实例,如图1所示,单击“输出Excel”按钮,DataGridView控件中的数据便以Excel文件方式打开,如图2所示,然后用户便可以用Excel自带的打印功能对学生信息进行打印。

    图1 利用Excel打印学生信息报表

    图2 输出的Excel报表

    技术要点

    本实例中首先通过调用Microsoft Excel自动化对象模型的Workbooks对象的Add方法创建一个新的工作簿,然后通过设置Excel对象的Cells属性,向新建的工作簿中添加数据记录。下面对Workbooks对象的Add方法和Excel对象的Cells属性进行详细介绍。
    (1)Workbooks对象的Add方法 该方法主要用来创建一个新的工作簿,其使用语法格式如下:
    Workbook Add([In, Optional] object Template);
    参数说明如下。
    Template:指定是否添加工作簿,如果为True,表示添加;否则,表示不添加。
    返回值:返回Workbook类型,表示一个Excel工作簿。
    (2)Excel对象的Cells属性 该属性用来指定Excel工作簿中单元格的内容。

    例如,下面的代码用来指定Excel工作簿中第一行第一列的单元格中的内容为“Excel”:
    excel.Cells[0, 0] = “Excel”;

    实现过程

    (1)新建一个Windows应用程序,将其命名为PrintStudentInfo,默认主窗体为PrintStudentInfo。
    (2)在PrintStudentInfo窗体中添加一个DataGridView控件和一个Button控件,其中,DataGridView控件用来显示数据库中的记录,Button控件用来将DataGridView控件中的数据以Excel格式输出。
    (3)主要程序代码。 “输出Excel”按钮的Click事件实现代码如下:

    1
    2
    3
    4
    private void button1_Click(object sender, EventArgs e)
    {
    ExportDataGridview(dataGridView1, true); //将DataGridView控件中的数据导出到Excel
    }

    自定义方法ExportDataGridview用来实现将DataGridView控件中数据导出到Excel。代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public bool ExportDataGridview(DataGridView dgv, bool isShowExcle)
    {
    if (dgv.Rows.Count == 0)//当DataGridView控件中没有数据时
    return false; //返回false
    //建立Excel对象
    Excel.Application excel = new Excel.Application(); //实例化一个Excel对象
    excel.Application.Workbooks.Add(true); //添加内容
    excel.Visible = isShowExcle; //设置为显示Excel
    //生成字段名称
    for (int i = 0; i & lt; dgv.ColumnCount; i++) //循环遍历DataGridView控件中的每一列
    {
    excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText; //向Excel中填充数据
    }
    //填充数据
    for (int i = 0; i & lt; dgv.RowCount - 1; i++) //循环遍历DataGridView控件中的每一行
    {
    for (int j = 0; j & lt; dgv.ColumnCount; j++)//循环遍历DataGridView控件中的每一列
    {
    if (dgv[j, i].ValueType == typeof(string)) //当当前数据类型为字符串时
    {
    excel.Cells[i + 2, j + 1] = " '" + dgv[j, i].Value.ToString(); //向Excel中填充数据
    }
    else //当数据类型为其它类型时
    {
    excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString(); //在Excel中直接显示内容
    }
    }
    }
    return true; //返回真
    }
    觉得文章有用?请我喝杯咖啡~