.Net中导出数据到EXCEL汇总

方式一:用流的方式向EXCEL中写如数据

(1)通过web页面的方式

ExpandedBlockStart.gif View Code
///   <summary>
    
///  导出
    
///   </summary>
    
///   <returns> 要导出的内容 </returns>
     public   string  Export()
    {
        StringBuilder table 
=   new  StringBuilder();
        table.Append(
@" <b>项目组开模</b><table class='table'><tr><td class='td_center' colspan='2'>项目组</td><td class='td_center' colspan='2'>OA</td><td class='td_center'>编写人</td>
                         <td class='td_center' colspan='2'>周大有</td></tr>
" );
        table.Append(
" <tr><td class='td_center'>序号</td> " );
        table.Append(
" <td class='td_center'>产品型号(完整)</td> " );
        table.Append(
" <td class='td_center'>营业员/营业办</td> " );
        table.Append(
" <td class='td_center'>终端客户/方案公司或代理</td> " );
        table.Append(
" <td class='td_center'>用途</td> " );
        table.Append(
" <td class='td_center'>产品信息</td> " );
        table.Append(
" <td class='td_center'>事业部</td> " );
        table.Append(
" </tr> " );

        table.Append(
" </table> " );
        
return  table.ToString();
    }
    
///   <summary>
    
///  导出Excel
    
///   </summary>
    
///   <param name="page"> 操作页面 </param>
    
///   <param name="fileName"> 导出的文件名称 </param>
    
///   <param name="text"> 要导出的内容 </param>
     public   void  ExportExcel(Page page,  string  fileName,  string  text)
    {
        page.EnableViewState 
=   false ;
        
try
        {
            page.Response.ClearContent();
            page.Response.Buffer 
=   true ;
            page.Response.Charset 
=   " GB2312 " ; // 设置字符集,解决中文乱码问题
            page.Response.ContentEncoding  =  System.Text.Encoding.GetEncoding( " GB2312 " );
            page.Response.Write(
" <meta http-equiv=Content-Type content=\"text/html;charset=GB2312\"> " ); // 解决乱码问题
            
// 解决HTTP头中文乱码问题
             string  strExcelText  =  DateTime.Now.ToShortDateString()  +   " \t "   +  fileName; // Excel显示的内容
             string  strEncode  =  System.Web.HttpUtility.UrlEncode(strExcelText, System.Text.Encoding.UTF8); // 进行编码的格式,用gb2312出错
            page.Response.AddHeader( " content-disposition " " attachment;filename=\" "   +  strEncode  +   " .xls\" " ); // 对保存标题进行编码
            page.Response.ContentType  =   " application/vnd.xls " ; // 设置输出格式

            
// 设置样式
            page.Response.Write( @" <html><head><style>.table{border: 1px solid #000000;padding:0;margin:0 auto;border-width: thin;border-collapse: collapse;}
                                    .td_head{border: 1px solid #000000;border-width: thin;text-align:center;font-size:12px;padding: 3px 3px 3px 8px;background: #000000;}
                                    .td_left{border: 1px solid #000000;font-size:12px;border-width: thin;text-align:left;padding: 3px 3px 3px 8px;mso-number-format:\@;}
                                    .td_left_number{border: 1px solid #000000;font-size:12px;border-width: thin;text-align:left;padding: 3px 3px 3px 8px;}
                                    .td_center{border: 1px solid #000000;font-size:12px;border-width: thin;text-align:center;padding: 3px 3px 3px 8px;mso-number-format:\@;}
                                    .td_center_number{border: 1px solid #7777cc;font-size:12px;border-width: thin;text-align:center;padding: 3px 3px 3px 8px;}
                                    .td_right{border: 1px solid #000000;font-size:12px;border-width: thin;text-align:right;padding: 3px 3px 3px 8px;mso-number-format:\@;}
                                    .td_right_number{border: 1px solid #000000;font-size:12px;border-width: thin;text-align:right;padding: 3px 3px 3px 8px;}
                                    </style></head><body>
" );

            StringWriter sw 
=   new  StringWriter();
            HtmlTextWriter htw 
=   new  HtmlTextWriter(sw);
            htw.WriteLine(text);
// 将数据输出
            page.Response.Write(sw.ToString());
            page.Response.Write(
" </body></html> " );
            page.Response.Flush();
            page.Response.End();
        }
        
catch
        {
            
return ;
        }
        
finally
        {
            
// 恢复原来控件内容
            page.EnableViewState  =   true ;
        }
    }
    
protected   void  Button1_Click1( object  sender, EventArgs e)
    {
        
string  strText  =  Export();
        strText 
=   this .AlarmInfo.InnerHtml;
        ExportExcel(
this " 测试表 " , strText);
    }

(2)不用web页面的方式

ExpandedBlockStart.gif View Code
private   void  CreateExcel(DataTable db)
        {
            Stream myStream 
=   new  FileStream( " D:\\Excel.xls " , FileMode.Create);

            StreamWriter sw 
=   new  StreamWriter(myStream, System.Text.Encoding.GetEncoding( " gb2312 " ));
            
try
            {
                
// 写内容
                 for  ( int  j  =   0 ; j  <  db.Rows.Count; j ++ )
                {
                    
string  tempStr  =   "" ;

                    
for  ( int  k  =   0 ; k  <  db.Columns.Count; k ++ )
                    {
                        
if  (k  >   0 )
                        {
                            tempStr 
+=   " \t " ;
                        }
                        tempStr 
+=  db.Rows[j][k].ToString();
                    }
                    sw.WriteLine(tempStr);
                }
                sw.Close();
                myStream.Close();
            }
            
catch  (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            
finally
            {
                sw.Close();
                myStream.Close();
            }
        }

方式二:粘贴方式

转载于:https://www.cnblogs.com/S-TGM/archive/2011/04/08/2009217.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值