C# asp.net 导出excel

bsg1987 2011-05-04 09:21:21
怎样用asp.net创建复杂的报表,并将其导成excel;需要源码!
...全文
91 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ferdinand_lee1 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 netxiaoma 的回复:]
C# code
private void Button4_Click(object sender, System.EventArgs e)
{ string searchcon=SearchStr_Excel();
SqlConnection con = new SqlConnection(ConnectionString);
……
[/Quote]

呵呵,正好用到!!!
netxiaoma 2011-05-05
  • 打赏
  • 举报
回复
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();

}
yksyuan 2011-05-05
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/file/Export-Gridview-To-Excel-With-Multi-Sheet.aspx
这个感觉不错。不需要考虑 服务器的office安装与否
感觉比较好
alpha_2011 2011-05-05
  • 打赏
  • 举报
回复
自己绘制Excel
蓝小修 2011-05-05
  • 打赏
  • 举报
回复
正在找关于导出到Excel文件和打印等的问题,所以来看看,有没有什么好的解决方法啊。
Lisliefor 2011-05-05
  • 打赏
  • 举报
回复
如何导入数据至Excel文件 C#.net

不管excel多复杂,只要思路清晰都可以搞定,这篇博客整理了导出办法,还有设置excel样式的办法,还有一些常见的调试中遇到的bug的解决方法。

cjh200102 2011-05-05
  • 打赏
  • 举报
回复
不清楚你要做成什么样的。

我原先做过3个表的数据分析加透视图。

我是采用先做好EXCEL模板再填充数据这种方式
dianjihulian 2011-05-05
  • 打赏
  • 举报
回复
NPOI 导出 google里搜NPOI 用起来还不错。。
秋的红果实 2011-05-05
  • 打赏
  • 举报
回复
做过从gridview导出到excel
dcvsjl 2011-05-05
  • 打赏
  • 举报
回复
前几天也在关于怎么导出excel 哎 感觉好的方法难找啊
xupeihuagudulei 2011-05-04
  • 打赏
  • 举报
回复
楼上的是不是用了什么ocx插件啊。这种方式我很不喜欢。
暖枫无敌 2011-05-04
  • 打赏
  • 举报
回复
在怎么复杂的报表,都能用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")一致。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧