怎样用asp.net创建复杂的报表,并将其导成excel;需要源码!

解决方案 »

  1.   

    在怎么复杂的报表,都能用Repeater的模板列给做出来,你什么样的表格只有你自己知道,自己通过Repeater的模板列做吧。导出Excel,这有段js代码,可供参考:
    <script type="text/javascript">
            //导出Excel   
            function AllAreaExcel(objtableid) {
                var oXL = new ActiveXObject("Excel.Application");
                var oWB = oXL.Workbooks.Add();
                var oSheet = oWB.ActiveSheet;
                var sel = document.body.createTextRange();
                sel.moveToElementText(document.getElementById(objtableid));
                sel.select();
                sel.execCommand("Copy");
                oSheet.Paste();
                oXL.Visible = true;
            }   
        </script>        <table width="1700" id="table" border="0" cellspacing="0" cellpadding="0" style="text-align: center;table-layout: fixed;">
    <asp:Repeater ...>
         //你报表的主体部分在这里写
    </asp:Repeater>
           </table>
    <div style="text-align: left">
                <img src="images/dcexcel.gif" onclick='AllAreaExcel("table");' alt="导出到Execl" style="cursor: hand;" />
            </div>上面注意 <table id="table" ...> 中的id要和 导出按钮AllAreaExcel("table")一致。
      

  2.   

    楼上的是不是用了什么ocx插件啊。这种方式我很不喜欢。
      

  3.   

    前几天也在关于怎么导出excel  哎   感觉好的方法难找啊
      

  4.   

    NPOI 导出 google里搜NPOI 用起来还不错。。
      

  5.   

    不清楚你要做成什么样的。我原先做过3个表的数据分析加透视图。我是采用先做好EXCEL模板再填充数据这种方式
      

  6.   

    如何导入数据至Excel文件 C#.net不管excel多复杂,只要思路清晰都可以搞定,这篇博客整理了导出办法,还有设置excel样式的办法,还有一些常见的调试中遇到的bug的解决方法。
      

  7.   

    正在找关于导出到Excel文件和打印等的问题,所以来看看,有没有什么好的解决方法啊。
      

  8.   

    http://dotnet.aspx.cc/file/Export-Gridview-To-Excel-With-Multi-Sheet.aspx
    这个感觉不错。不需要考虑 服务器的office安装与否
    感觉比较好
      

  9.   

    private void Button4_Click(object sender, System.EventArgs e)
    {   string searchcon=SearchStr_Excel();
    SqlConnection con = new SqlConnection(ConnectionString);
    SqlDataAdapter adapter=new SqlDataAdapter(searchcon ,ConnectionString+ ";Connect Timeout=3000");      
    DataTable pDataTable=new DataTable();
    adapter.Fill(pDataTable);
     int tRowCount = pDataTable.Rows.Count; 
            int tColumnCount = pDataTable.Columns.Count; 
               
             Response.Expires = 0; 
            Response.Clear(); 
            Response.Buffer = true; 
             Response.Charset = "utf-8"; 
             Response.ContentEncoding = System.Text.Encoding.UTF8; 
             Response.ContentType = "application/vnd.ms-excel"; 
             Response.AddHeader("Content-Disposition", "attachment; filename=Excel.xls"); 
             Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>"); 
             //   Response.Write("<style type=\"text/css\">.format{mso-number-format:\'\@\';}<\style>");
             Response.Write("<Table borderColor=black border=1>"); 
             Response.Write("\n <TR>"); 
    for (int i = 0; i < tColumnCount; i++) 
             { 
                 Response.Write("\n <TD  bgcolor = #fff8dc>"); 
                 Response.Write(pDataTable.Columns[i].ColumnName); 
                 Response.Write("\n </TD>"); 
             } 
             Response.Write("\n </TR>"); 
             for (int j = 0; j < tRowCount; j++) 
             { 
                 Response.Write("\n <TR>"); 
                 for (int k = 0; k < tColumnCount; k++) 
                 { 
                    
    //  if (k==0)
    //  {
    //  Response.Write("\n<TD style='mso-number-format:\"@\">"); 
    //  }
    //  else
      Response.Write("\n <TD align=\"right\" style='vnd.ms-excel.numberformat:@'>"); Response.Write(pDataTable.Rows[j][k].ToString());                   Response.Write("\n </TD>"); 
                 } 
                 Response.Write("\n </TR>"); 
             } 
      
             Response.Write("</Table>"); 
      
             Response.End();  }