百度首页 | 百度空间
 
查看文章
 
以操作Excel控件的方式将DataGridView数据导出到Excel
2007年05月26日 星期六 下午 08:04

/// <summary>
         /// 以操作Excel控件的方式将DataGridView数据导出到Excel add by sunny 2007/1/18
         /// </summary>
         /// <param name="GridView">DataGridView对象</param>
         /// <param name="strExcelFile">Excel文件名</param>
         /// <param name="strError">out参数,返回出错信息</param>
         /// <returns>
         ///     -1 出错
         ///     0 成功
         /// </returns>
         public static int DataGridViewToExcel(System.Windows.Forms.DataGridView GridView,
             string strExcelFileName,
             out string strError)
         {
             strError = "";
             int nRet = 0;

             Excel.Application xlApp = new Excel.Application();
             Excel.Workbooks workbooks = xlApp.Workbooks;
             Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
             Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

             try
             {
                 //~~
                 // 写字段名
                 for (int i = 0; i < GridView.Columns.Count; i++)
                 {
                     worksheet.Cells[1, i + 1] = GridView.Columns[i].HeaderText.ToString();
                 }

                 // 写记录
                 for (int i = 0; i < GridView.Rows.Count; i++)
                 {
                     for (int j = 0; j < GridView.Columns.Count; j++)
                     {
                         worksheet.Cells[i + 2, j + 1] = GridView.Rows[i].Cells[j].Value.ToString(); ;
                     }
                 }

                 worksheet.Columns.EntireColumn.AutoFit();//自动适应每列的宽度 add by sunny.li
                 Excel.Range rg = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, GridView.Columns.Count]);
                 rg.Font.Bold = true;
                 workbook.Saved = true;
                 workbook.SaveCopyAs(strExcelFileName);
               
                 // 关掉内存中的进程
                 xlApp.Quit();
                 nRet = 0;
             }
             catch (Exception ex)
             {
                 strError = ex.ToString();
                 nRet = -1;
             }

             return nRet;
         }


类别:它山之石(全部为转贴) | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2008年04月24日 星期四 上午 10:49
excel导出后文件在哪里?
 
2
2008年04月24日 星期四 下午 09:52
应该是strExcelFileName 所指的fullpath.
strExcelFileName 可以用savedialog来选择。
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu