将分页的repeater数据全部导出到excel

repeater绑定的数据源是DataTable类型的。repeater已经分页,打印的时候每次都只是打印当前页的数据,并没有打印所有数据。现在要实现的是将所有的数据都打... repeater绑定的数据源是DataTable类型的。repeater已经分页,打印的时候每次都只是打印当前页的数据,并没有打印所有数据。现在要实现的是将所有的数据都打印出来,不考虑GridView的其他控件和隐藏一个Repeater的方法 展开
 我来答
jack87918
2012-03-12 · TA获得超过2048个赞
知道小有建树答主
回答量:1618
采纳率:100%
帮助的人:1452万
展开全部
方法No.1:
你可以使用水晶报表显示数据,然后用自带的excel导出功能导出,这种方法比较easy
方法No.2:
需要引用Microsoft.Office.Interop.Excel,用微软自带的操作Excel的组件来进行操作,这个网上很多,你可以随便搜拿肢逗一下就有
方法No.3:
网上有个专门针对.net操作excel封装的dll,你可以搜索下载之后引用----SpreadsheetGear
这个类库封装的操饥铅作方法相对来说比较简单,你下消卖下来之后随便搜索一个demo就能上手
36557832
2012-03-16 · TA获得超过11.4万个赞
知道顶级答主
回答量:7万
采纳率:1%
帮助的人:4.5亿
展开全部
public void INSERT_Excel(DataView dvs,string strPath)
{
string s="皮清";
Excel.Application app=new Application();
Excel._Workbook book;
Excel._Worksheet sheet;
book=(Excel._Workbook)app.Workbooks.Open(strPath,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
sheet=(Excel._Worksheet)book.Sheets[1];
int j=dvs.Count;
for(int i=0;i <dvs.Count;i++)
{
try
{
s=Convert.ToString(i);
sheet.Cells[i+3,"A"]=""; sheet.Cells[i+3,"B"]="";
}
catch(Exception ex)
{
HttpContext.Current.Response.Write(" <script language='javascript'>alert('"+ex.Message+"燃兄前') </script>");
book.Close(null,null,null);
app.Workbooks.Close();
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
sheet=null;
book=null;
app=null;
GC.Collect();
HttpContext.Current.Response.Write(" <script language='javascript'>alert('导出失尘携败!') </script>");
return;
}

}
book.Save();
book.Close(null,null,null);
app.Workbooks.Close();
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
sheet=null;
book=null;
app=null;
GC.Collect();
GC.Collect();
GC.Collect();
HttpContext.Current.Response.Write(" <script language='javascript'>alert('导出成功!') </script>");
HttpContext.Current.Response.Write(" <script language='javascript'>window.open('../Template_temp/A.xls','_bank') </script>");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d5990ce
2012-03-12
知道答主
回答量:11
采纳率:0%
帮助的人:1.1万
展开全部
那就别读取Repeater空间里的数据啊,你读取Repeater控件的话只会导出明液当前显示在Repeater里的数据,你可以在页面放一激仔物个全局变量的DataTable ,把数据读取后,存放到这个内存表里,档需要导出时,将这个内存表里的数据全部导出就可以导出所有数据了,但是记住它会把这个表的列名也导进去,所以你在查戚模询的时候,需要稍作处理,让列名显示为中文,当然编码格式需要赋值一下。。希望能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式