将分页的repeater数据全部导出到excel
repeater绑定的数据源是DataTable类型的。repeater已经分页,打印的时候每次都只是打印当前页的数据,并没有打印所有数据。现在要实现的是将所有的数据都打...
repeater绑定的数据源是DataTable类型的。repeater已经分页,打印的时候每次都只是打印当前页的数据,并没有打印所有数据。现在要实现的是将所有的数据都打印出来,不考虑GridView的其他控件和隐藏一个Repeater的方法
展开
展开全部
方法No.1:
你可以使用水晶报表显示数据,然后用自带的excel导出功能导出,这种方法比较easy
方法No.2:
需要引用Microsoft.Office.Interop.Excel,用微软自带的操作Excel的组件来进行操作,这个网上很多,你可以随便搜拿肢逗一下就有
方法No.3:
网上有个专门针对.net操作excel封装的dll,你可以搜索下载之后引用----SpreadsheetGear
这个类库封装的操饥铅作方法相对来说比较简单,你下消卖下来之后随便搜索一个demo就能上手
你可以使用水晶报表显示数据,然后用自带的excel导出功能导出,这种方法比较easy
方法No.2:
需要引用Microsoft.Office.Interop.Excel,用微软自带的操作Excel的组件来进行操作,这个网上很多,你可以随便搜拿肢逗一下就有
方法No.3:
网上有个专门针对.net操作excel封装的dll,你可以搜索下载之后引用----SpreadsheetGear
这个类库封装的操饥铅作方法相对来说比较简单,你下消卖下来之后随便搜索一个demo就能上手
展开全部
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>");
}
{
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>");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就别读取Repeater空间里的数据啊,你读取Repeater控件的话只会导出明液当前显示在Repeater里的数据,你可以在页面放一激仔物个全局变量的DataTable ,把数据读取后,存放到这个内存表里,档需要导出时,将这个内存表里的数据全部导出就可以导出所有数据了,但是记住它会把这个表的列名也导进去,所以你在查戚模询的时候,需要稍作处理,让列名显示为中文,当然编码格式需要赋值一下。。希望能帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询