ExcelHelper导出DataTable到Excel文档

 1 using  System;
 2 using  System.IO;
 3 using  System.Data;
 4 using  System.Web;
 5 using  System.Text;
 6 using  System.Globalization;
 7 using  System.Collections;
 8 using  System.Windows.Forms;
 9 using  Microsoft.CSharp;
10
11 namespace  Com.Elong.BusinessService.Domain.CommissionAccount
12 ExpandedBlockStart.gifContractedBlock.gif {
13    public class ExcelHelper
14ExpandedSubBlockStart.gifContractedSubBlock.gif    {
15        public static void ExportToExcel(string filePath, DataSet ds)
16ExpandedSubBlockStart.gifContractedSubBlock.gif        {
17            object oMissing = System.Reflection.Missing.Value;
18            Excel.ApplicationClass xlApp = new Excel.ApplicationClass();
19            try
20ExpandedSubBlockStart.gifContractedSubBlock.gif            {
21                // 打开Excel文件。以下为Office 2000.
22                Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(filePath, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
23                Excel.Worksheet xlWorksheet;
24                // 循环所有DataTable
25                forint i=0; i<ds.Tables.Count; i++ )
26ExpandedSubBlockStart.gifContractedSubBlock.gif                {
27                    // 添加入一个新的Sheet页。
28                    xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.Add(oMissing,oMissing,1,oMissing);
29                    // 以TableName作为新加的Sheet页名。
30                    xlWorksheet.Name = ds.Tables[i].TableName;
31                    // 取出这个DataTable中的所有值,暂存于stringBuffer中。
32                    string stringBuffer = "";
33                    forint j=0; j<ds.Tables[i].Rows.Count; j++ )
34ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
35                        forint k=0; k<ds.Tables[i].Columns.Count; k++ )
36ExpandedSubBlockStart.gifContractedSubBlock.gif                        {
37
38                            stringBuffer += ds.Tables[i].Rows[j][k].ToString();
39                            if( k < ds.Tables[i].Columns.Count - 1 )
40                                stringBuffer += "\t";
41                        }

42                        stringBuffer += "\n";
43                    }

44                    // 利用系统剪切板
45                    System.Windows.Forms.Clipboard.SetDataObject("");
46                    // 将stringBuffer放入剪切板。
47                    System.Windows.Forms.Clipboard.SetDataObject(stringBuffer);
48                    // 选中这个sheet页中的第一个单元格
49                    ((Excel.Range)xlWorksheet.Cells[1,1]).Select();
50                    // 粘贴!
51                    xlWorksheet.Paste(oMissing,oMissing);
52                    // 清空系统剪切板。
53                    System.Windows.Forms.Clipboard.SetDataObject("");
54                }

55                // 保存并关闭这个工作簿。
56                xlWorkbook.Close( Excel.XlSaveAction.xlSaveChanges, oMissing, oMissing );
57                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook);
58                xlWorkbook = null;
59            }

60            catch(Exception ex)
61ExpandedSubBlockStart.gifContractedSubBlock.gif            {
62                MessageBox.Show(ex.Message);
63            }

64            finally
65ExpandedSubBlockStart.gifContractedSubBlock.gif            {
66                // 释放
67                xlApp.Quit();
68                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
69                xlApp = null;
70                GC.Collect();
71            }

72        }

73    }

74}

75

转载于:https://www.cnblogs.com/adam/archive/2007/03/09/669177.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值