首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

把服务器下的数据导入到excel表中并且上载到本地

2012-07-31 
把服务器上的数据导入到excel表中并且下载到本地public class ExportDataToExcel : IHttpHandler {public

把服务器上的数据导入到excel表中并且下载到本地
public class ExportDataToExcel : IHttpHandler {
   
  public void ProcessRequest (HttpContext context) {
  context.Response.ContentType = "application/vnd.ms-excel";
  string fileName = "~/ExportFile";
  fileName = context.Server.MapPath(fileName);
  fileName = fileName + "\\" + new Random().Next().ToString() + ".xls";
  if (File.Exists(fileName))
  {
  File.Delete(fileName); 
  }
  Office.Application excel = new Office.Application();
  excel.SheetsInNewWorkbook = 1;
  excel.Workbooks.Add();
  Office.Worksheet sheet = (Office.Worksheet)excel.ActiveWorkbook.Sheets[1];
  sheet.Name = "BookInfo";
  Office.XlFileFormat fileType = Office.XlFileFormat.xlWorkbookNormal;
  int CategoryId = int.Parse(context.Request.QueryString["CategoryId"]);
  DataTable table = BookManage.GetBookInfoTableByCategoryId(CategoryId);
  for (int index = 0; index < table.Columns.Count; index++)
  {
  sheet.Cells[1, index + 1] = table.Columns[index].ColumnName;
  }
  for (int i = 0; i < table.Rows.Count; i++)
  {
  for (int j = 0; j < table.Columns.Count; j++)
  {
  sheet.Cells[i + 2, j + 1] = table.Rows[i][j].ToString();
  }
  }
  excel.Visible = false;
  excel.ActiveWorkbook.SaveAs(fileName,fileType);
  excel.ActiveWorkbook.Close();
  context.Response.WriteFile(fileName);  
  context.Response.Flush();
  context.Response.End();


这是做的一个一般处理程序,把数据导入到excel表中成功了,但是在从服务器下载到本地时下载的文件确是这个一般处理程序文件本身,不是excel表,哪位大神帮我看看!!!!

[解决办法]
你 弄的好麻烦呀。。。 你用什么控件绑定数据
[解决办法]
<asp:Repeater ID="Repeater1" runat="server"> 
<HeaderTemplate><table border="1" cellspacing="1" cellpadding="2" class="stock" id="Negative" bgcolor="#FFFFFF" align="center" width="99%">
<tr> 
<td height="22" align="center" class="stocktd" colspan="6" style="color:#93C; font-weight:bold; font-size:14px;">从<span style="color:#F0F"><%= date1.Text%></span>到<span style="color:#F0F"><%= date2.Text %></span>没有任何出入库操作的产品</td>
</tr>
<tr class="classtop1" id="title">
<td width="10%" height="20" align="center" class="stocktd0" style="font-weight:bold;">序号</td>
<td width="20%" align="center" class="stocktd0" style="font-weight:bold;" >产品编号</td>
<td width="18%" align="center" class="stocktd0" style="font-weight:bold;">仓库位置</td>
<td width="18%" align="center" class="stocktd0" style="font-weight:bold;">库存数量</td>
<td height="20" align="center" class="stocktd0" style="font-weight:bold;" colspan="2">产品最近一次出入库日期与操作记录</td>
</tr></HeaderTemplate> <ItemTemplate><tr >
<td align="center" class="stocktd" style="padding-bottom:5PX;padding-top:5px; padding-left:2px"><%# Container.ItemIndex+1 %></td>


<td align="left" class="stocktd" style="padding-bottom:5PX;padding-top:5px; padding-left:2px" ><%# Eval("Sitemno")%></td>
<td align="center" class="stocktd" style="padding-bottom:5;padding-top:5; padding-left:2px"><%# Eval("Theposition")%></td>
<td align="center" class="stocktd" style="padding-bottom:5;padding-top:5; padding-left:2px"><%# Eval("Squantity")%></td>
<td align="left" class="stocktd" style="padding-bottom:5;padding-top:5; padding-left:25px; border-right:none;"><%# Eval("Idate")%></td>
<td align="left" class="stocktd" style="padding-bottom:5;padding-top:5; padding-left:2px; border-left:none; width:15%;"><% if (iquantity[i]< 0)
{%>出库&nbsp;<%# Eval("Iquantity").ToString().Replace("-","") %>
<%}else{ %>入库&nbsp;<%# Eval("Iquantity")%><%} i++;%>&nbsp;PCS
</td>
</tr></ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>

这个是我 做成功的 Repeater 控件 后台代码上面有
[解决办法]
导出到模板上,再下载(直接链接EXCEL模板文件才可以的)~!
[解决办法]
用写好的方法吧。。网上很多
[解决办法]
楼主 我写的没用??

热点排行