把指定的DataSet中的内容导出到Excel中

转载 2007年10月08日 08:52:00
  /// <summary>
  /// 把指定的DataSet中的内容导出到Excel中.
  /// </summary>
  /// <param name="ds">ds参数为DateSet对象</param>
  /// <param name="ImpStr">该字符串用来指定一些字段来导出,其使用格式为:aaa|AAA,bbb|BBB   小写字符串为在Excel表中显示该字段的列标题,大写表示字段名.不同字段使用逗号分隔.</param>
  /// <param name="locR">数据导出到Excel中的开始行</param>
  /// <param name="locC">数据导出到Excel中的开始列</param>
  /// <param name="TitleStr">该字符串用来指定要导出的表和表的标题其格式为:aaa|AAA,bbb|BBB   小写为该表中显示的标题,大写为表名称.不同表使用逗号分隔</param>
  /// <param name="TilteLocR">显示标题的行</param>
  /// <param name="TitleLocC">显示标题的列</param>
  /// <param name="ColTitleColorIndex">列标题颜色索引</param>
  /// <example>Import2Excel(this.dsData ,"用户名|USERNAME,登录名|LOGINNAME",3,1,"用户名列表|BILL_USER",1,2 ,12);</example>
  private void Import2Excel(System.Data.DataSet ds,string ImpStr ,int locR,int locC,string TitleStr,int TilteLocR, int TitleLocC,int ColTitleColorIndex )
  {
   //加载Excel
   Microsoft.Office.Interop.Excel.ApplicationClass ex=new Microsoft.Office.Interop.Excel.ApplicationClass();
   ex.Visible=true ;//显示Excel
   if (ex==null)
   {
    //无法显示时报错
   MessageBox.Show("无法启动 Microsoft Office Excel,导出失败!","Import2Excel", MessageBoxButtons.OK,MessageBoxIcon.Stop );
   return ;
   }
   string[] tles=TitleStr.Split(",".ToCharArray());
   string[] Imps=ImpStr.Split(",".ToCharArray()) ;
   string[] tlbs=TitleStr.Split(",".ToCharArray ());
   //获得工作薄
       Microsoft.Office.Interop.Excel.Workbooks   wbs =ex.Workbooks;
   Microsoft.Office.Interop.Excel.Workbook wb= wbs.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
  

   int z=0;//Sheet索引
   foreach (string tblname in tlbs)
   {
    z+=1;
    //得到表和工作表一个工作表对应一个表,
    string[] tbn=tblname.Split("|".ToCharArray());
    System.Data.DataTable dt=ds.Tables[tbn[1].ToUpper() ];
    Microsoft.Office.Interop.Excel.Worksheet ws=
     (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[z];
    //工作表的第一行标题设置为该表的表名.
    //从格式字符串中去表名对应的名称.
//    int tm1=TitleStr.ToUpper().IndexOf(dt.TableName+"|")+dt.TableName.Length +1;
//    string tit=TitleStr.Substring(tm1,TitleStr.IndexOf(",",tm1)-tm1);
    ws.Cells[TilteLocR, TitleLocC]=tbn[0] ;//设置该单元格显示的标题
    ws.Name=dt.TableName ;//设置该Sheet的名称为表名.
    int n1=locC;
    //设置字段名称
    foreach (string imp in Imps)
     {
     string[] im=imp.Split("|".ToCharArray());
      n1+=1 ;
      ws.Cells[locR,  n1]=im[0];//'字段名称
      Microsoft.Office.Interop.Excel.Range rg=
           (Microsoft.Office.Interop.Excel.Range)ws.Cells[locR, n1];
      rg.Interior.ColorIndex=ColTitleColorIndex;
      rg.Font.Bold=true;
     }
    for (int y=0;y<=dt.Rows.Count -1;y+=1)
    {
    System.Data.DataRow dr=dt.Rows[y];
     int n2=1;
     foreach (string imp in Imps)
     {
     string[] im=imp.Split("|".ToCharArray());
     ws.Cells[locR+1+y,locC+n2]=dr[im[1].ToUpper()];
     n2+=1;  
     }
    }
   }
  } 

相关文章推荐

将 GridView、DataTable,DataSet 中的内容导出到 Excel 中多个工作表(Sheet) 的方法

该方法服务器端可以不用安装EXCEL。 Excel 可以保存成 xml 格式,并且支持Sheet功能,因此,我们就可以利用这个功能将 Gridview 导出到多个 Sheet  中去。而且可以很好地...

c# 32位机和64位机 读取Excel内容到DataSet

----------------------32位机 //注释说明 //ExclePath  为Excel路径     批号  是指Excel文件中某一列必填项 public stati...
  • gaind
  • gaind
  • 2011-12-09 10:50
  • 3914

导出DataSet到Excel

黑马程序员_WinForm导出DataSet到Excel中

/// /// 导出DataSet到Excel(如果DataSet中有多个DataTable,则会导出到不同的sheet中,但只生成一个excel文件) /// ...

Dataset导出excel的不同sheet中

今天遇到个项目,需要把dataset(多Datatable的)数据导入到一个excel中不同的sheet中,在网上找了好久,最后通过自己修改,总结了两个方法,记录下来备份。方法一:通过操作Micros...

DataSet中多表导出到同一Excel的不同sheet中

1.封装代码如下   using System; using System.Collections.Generic; using System.Web; using System.Data;...

通过DataSet导出Excel .

在以前的项目中,做这些类似的功能也挺多的,没保存好,现在在这里记下,会以后所用: [c-sharp] view plaincopyprint? ///   /// 通过Da...

GridView DataSet、Control 导出到 Excel

#region GridView DataSet、Control 导出到 Excel /// /// 导出 Excel 文件 /// ///...

ExportToExcel 一个通用的把dataset导出至EXCEL的类

一个通用类库,可以把dataset导出至EXCEL,优点是不需要安装OFFICE,只需要引用DocumentFormat.OpenXml.DLL WINFORM,WPF 调用方法CreateExcel...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)