DataTable导入到Excel文件

ExpandedBlockStart.gif
     public  static  bool DataTableToExcel(System.Data.DataTable dt,  string fileName,  bool showFileDialog= false)
        {
             if (showFileDialog)
            {
                SaveFileDialog saveFileDialog =  new SaveFileDialog();
                saveFileDialog.Filter =  " Execl files (*.xls)|*.xls ";
                saveFileDialog.FilterIndex =  0;
                saveFileDialog.RestoreDirectory =  true;
                saveFileDialog.CreatePrompt =  true;
                saveFileDialog.FileName = fileName;
                saveFileDialog.Title =  " Export Excel File To ";
                 //  saveFileDialog.ShowDialog();

                 if (saveFileDialog.ShowDialog() == DialogResult.OK)
                    fileName = saveFileDialog.FileName;
                 else
                     return  false;
            }
            System.Reflection.Missing miss = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Excel.Application excel =  new Microsoft.Office.Interop.Excel.ApplicationClass();
            Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks;
            Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)(books.Add(miss));
            Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet;
             if (! string.IsNullOrEmpty(dt.TableName))
            {
                sheet.Name = dt.TableName;
            }

             int intIndex =  0;
             foreach (DataColumn column  in dt.Columns)
            {
                intIndex++;
                excel.Cells[ 1, intIndex] = column.ColumnName;
            }

             int rowCount = dt.Rows.Count;
             int colCount = dt.Columns.Count;
             object[,] dataArray =  new  object[rowCount, colCount];
             for ( int i =  0; i < rowCount; i++)
            {
                 for ( int j =  0; j < colCount; j++)
                {
                     // 避免格式不兼容,加上"'"
                    dataArray[i, j] =  " ' "+dt.Rows[i][j].ToString();
                }
            }

            sheet.get_Range( " A2 ", sheet.Cells[rowCount +  1, colCount]).Value2 = dataArray;
            sheet.SaveAs(fileName, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);

            book.Close( false, miss, miss);
            books.Close();
            excel.Quit();

             // System.Runtime.InteropServices.Marshal.ReleaseComObject();   
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(books);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
            GC.Collect();
             return  true;


        }
View Code
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值