zoukankan      html  css  js  c++  java
  • 数据库中数据导出到Excel文件中

    导出Excel文件

    2009年4月29日21:59:30
            private void btnOutputExcel_Click(object sender, EventArgs e)
            {
                //一个Excel的应用类的实例声明
                ApplicationClass myExcel;
                //工作薄声明
                Workbooks myWorkBooks;
                //一个工作薄
                Workbook myWorkBook;
                //一个工作表
                Worksheet myWorkSheet;
                char myColumns;
                //用WorkSheet对象返回一个Range对象,该对象代表:能在受保护的工作表中进行编辑的区域的子集
                Range myRange;
                Object[,] myData = new Object[5000, 30];
                System.Data.DataTable myReader;
                int count, i, j;
                try
                {
                    //生成一个Excel对象实例
                    myExcel = new ApplicationClass();
                    //设置Excel的可见
                    myExcel.Visible = true;
                    if (myExcel == null)
                    {
                        MessageBox.Show("Excel程序无法启动!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    //使用dataReader获取执行sql语句后的数据
                    myReader = db.selectStudentByMaster(masterID).Tables["selectStudentByMaster"];
                    //由Excel对象得到工作薄集合
                    myWorkBooks = myExcel.Workbooks;
                    //得到一个工作薄
                    myWorkBook = myWorkBooks.Add(Missing.Value);
                    //得到工作薄中一个工作表
                    myWorkSheet = (Worksheet)myWorkBook.Worksheets[1];
                    //得到数据集的表中列的个数
                    myColumns = (char)(myReader.Columns.Count + 64);


                    //用WorkSheet对象返回一个Range对象,该对象代表:能在受保护的工作表中进行编辑的区域的子集
                    //参数1:表示区域名,必须为A1样式引用的宏语言
                    //参数2:表示区域左上角到右下角的单元格
                    myRange = myWorkSheet.get_Range("A1", myColumns.ToString() + "1");
                   
                    //count为计算列数
                    count = 0;
                    //得到数据集中的表中的每一列的标题,然后放置到二维的对象数组中
                    foreach (DataColumn myNewColumn in myReader.Columns)
                    {
                        myData[0, count] = myNewColumn.ColumnName;
                        count++;
                    }
                    //设标题为黑体字
                    myWorkSheet.get_Range(myWorkSheet.Cells[1, 1], myWorkSheet.Cells[1, count]).Font.Name = "黑体";
                    //标题字体加粗
                    myWorkSheet.get_Range(myWorkSheet.Cells[1, 1], myWorkSheet.Cells[1, count]).Font.Bold = true;
                    //设计表格边框样式
                    myWorkSheet.get_Range(myWorkSheet.Cells[1, 1], myWorkSheet.Cells[1, count]).Borders.LineStyle = 1;
                    j = 0;
                    //双重循环来设置对象数组中数据(相当于表中单元格数据)
                    while (j < myReader.Rows.Count)
                    {
                        for (i = 0; i < myReader.Columns.Count; i++)
                        {
                            myData[j+1, i] = myReader.Rows[j][i].ToString();
                        }
                        j++;
                    }
                    //关闭读取器
                    //myReader.Close();
                    //重新设定范围
                    myRange = myRange.get_Resize(myReader.Rows.Count, myReader.Columns.Count);
                    //设定Excel范围的编辑数据源
                    myRange.Value2 = myData;
                    //自动适应大小
                    myRange.EntireColumn.AutoFit();
                    this.btnOutputExcel.Visible = false;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

  • 相关阅读:
    《代码整洁之道》之四 注释
    《代码整洁之道》之三 函数
    《代码整洁之道》之二 有意义的命名
    《代码整洁之道》
    Hibernate学习笔记
    Struts2复习笔记
    学习Spring必学的Java基础知识
    Eclipse下搭建Maven框架
    onvif实现
    rtmp服务端实现
  • 原文地址:https://www.cnblogs.com/gaojun/p/1446558.html
Copyright © 2011-2022 走看看