`
sammor
  • 浏览: 408963 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Execl的导出

阅读更多
第一步 引用命名空间

using Excel = Microsoft.Office.Interop.Excel;//这种引用方式
using System.Reflection; //Missing类命名空间

到命名空间之前请先添加引用

Microsoft Execl 12....这项

#region   从DataSet到出到Excel

        /**/
        ///  <summary>  
        ///  执行导出  
        ///  </summary>  
        ///  <param   name="ds">要导出的DataTable </param>  
        ///  <param   name="toFileName">要导出到的execl文件路径+文件名</param>ps:如果是c/s程序,那您直接丢一openFileDialog就方便多了
        ///   <param   name="strExcelFileName">导出到的execl的Sheet名</param>  
        private void doExport(DataTable dt, string toFileName, string strSheetName)
        {


            Excel.Application excel = new Excel.Application();  //Execl的操作类
            //读取保存目标的对象
            Excel.Workbook bookDest = excel.Workbooks._Open(toFileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value
                , Missing.Value, Missing.Value, Missing.Value, Missing.Value
                , Missing.Value, Missing.Value, Missing.Value, Missing.Value);//打开要导出到的Execl文件的工作薄。--ps:关于Missing类在这里的作用,我也不知道...囧

            Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet  

            sheetDest.Name = strSheetName;//自己定义名字O(∩_∩)O哈哈~

            int rowIndex = 1;
            int colIndex = 0;

            excel.Application.Workbooks.Add(true);//这句不写不知道会不会报错

            foreach (DataColumn col in dt.Columns)
            {
                colIndex++;
                sheetDest.Cells[1, colIndex] = col.ColumnName;//Execl中的第一列,把DataTable的列名先导进去
            }

            //导入数据行
            foreach (DataRow row in dt.Rows)
            {
                rowIndex++;
                colIndex = 0;
                foreach (DataColumn col in dt.Columns)
                {
                    colIndex++;
                    sheetDest.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
                }
            }

            bookDest.Saved = true;

          
            bookDest.Save();
            excel.Quit();
            excel = null;

            GC.Collect();//垃圾回收  
        }
        #endregion  



也可直接创建新的Execl文件,不过需要修改一下代码。


#region   从DataSet到出到Excel

        /**/
        ///  <summary>  
        ///  执行导出  
        ///  </summary>  
        ///  <param   name="ds">要导出的DataTable </param>  
        ///   <param   name="strExcelFileName">导出到的execl的Sheet名</param>  
        private void doExport(DataTable dt, string strSheetName)
        {


            Excel.Application excel = new Excel.Application();  //Execl的操作类
            //读取保存目标的对象
            Excel.Workbook bookDest = (Excel.WorkbookClass)excel.Workbooks.Add(Missing.Value);
            Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet  

            sheetDest.Name = strSheetName;//自己定义名字O(∩_∩)O哈哈~

            int rowIndex = 1;
            int colIndex = 0;

            excel.Application.Workbooks.Add(true);//这句不写不知道会不会报错

            foreach (DataColumn col in dt.Columns)
            {
                colIndex++;
                sheetDest.Cells[1, colIndex] = col.ColumnName;//Execl中的第一列,把DataTable的列名先导进去
            }

            //导入数据行
            foreach (DataRow row in dt.Rows)
            {
                rowIndex++;
                colIndex = 0;
                foreach (DataColumn col in dt.Columns)
                {
                    colIndex++;
                    sheetDest.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
                }
            }
            bookDest.Saved = true;
            bookDest.SaveCopyAs("要保存的文件路径+文件名.xls");//方式一
           //方式二 bookDest.SaveAs("要保存的文件路径+文件名.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            excel.Quit();
            excel = null;

            GC.Collect();//垃圾回收  
        }
        #endregion  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics