把指定的DataSet中的内容导出到Excel中
来源:互联网 发布:php base64 mp3 编辑:程序博客网 时间:2024/05/04 05:07
/// <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;
}
}
}
}
/// 把指定的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;
}
}
}
}
- 把指定的DataSet中的内容导出到Excel中
- 把指定的DataSet中的内容导出到Excel中
- 把指定的DataSet中的内容导出到Excel中
- 把excel文档中的内容读取到dataset中
- 将DATASET中的内容导出到EXCEL
- 把TABLE中内容导出到EXCEL
- 导出DataSet的数据到Excel中
- 把DATASET里的多个表导出到一个excel文件?
- 将 GridView、DataTable,DataSet 中的内容导出到 Excel 中多个工作表(Sheet) 的方法
- 将DataSet中的数据导出到Excel表中
- 关于导出excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 导出Excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 导出Excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 把dataset数据保存到excel,GridView导出到excel
- VB 将excel内容导出到指定文件中
- DataSet中多表导出到同一Excel的不同sheet中
- ASP.NET 中直接把gridview的视图内容导出到excel的关键代码
- Flex把datagrid的内容导出到Excel
- 给串口发送16进制字符串命令和包括16进制命令转换为字节数组
- 回学校听得第一个讲座 Dr ROSERBERG 怎么样做研究
- C#解析XML文件
- 资源管理器文件名复制插件
- HHP格式解析!
- 把指定的DataSet中的内容导出到Excel中
- 使用嵌套字用FTP协议进行文件上传下载!
- 无题~~~~~~~~~~~~~~
- 多线程委托回调
- 我的异步查询数据库 的类
- 用于保存HTML中的远程图片的程序集
- Visual Basic.net还是C#
- yuv420 转bmp的方法
- 本地硬盘安装red hat linux 9.0