C# DataTable下载
从服务器下载datatable到本地,有多种处理方式,下面介绍三种。
方式一,将datatable转为txt下载。
步骤:
1.将datatable内容下载到服务器txt中
2.将服务器的txt下载到本地来
3.删除服务器上的txt
方式二,datatable绑定到控件GridView后下载
步骤:
1.关闭控件分页功能并绑定数据到控件
2.下载控件内容到本地
3.打开控件分页功能并重新绑定数据
方式三,datatable转为Excel下载
步骤:
1.将datatable内容下载到服务器Excel中
2.将服务器中的Excel下载到本地
3.删除服务器上的Excel
如果大家有其他好的方式,不妨分享下,最好有源码,哈哈哈~~~~
//datatable转为txt
public void DataTableToTxt(string filePath,DataTable ds) {
FileStream fs = new FileStream(filePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//开始写入
for (int j=; j < ds.Columns.Count; j++) {
sw.Write(ds.Columns[j].ColumnName);
sw.Write("\t");
}
sw.Write("\r\n");
for (int i = ; i < ds.Rows.Count; i++)
{
for (int j = ; j < ds.Columns.Count; j++)
{
sw.Write(ds.Rows[i][j].ToString() == " " ? "" : ds.Rows[i][j].ToString());
sw.Write("\t");
}
sw.Write("\r\n");
}
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
//下载控件内容
public void GridviewToExcel(Control control, string FileType, string FileName)
{
HttpContext.Current.Response.Charset = "GB2312";//设置了类型为中文防止乱码的出现
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//注意编码
HttpContext.Current.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());//将http头添加到输出流
HttpContext.Current.Response.ContentType = FileType;//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword control.Page.EnableViewState = false;//服务器端只做出一次响应
StringWriter tw = new StringWriter();//实现将信息写入字符串(下面的信息会写到这里)
HtmlTextWriter hw = new HtmlTextWriter(tw);//用于将标记字符和文本写入到ASP.NET服务器控件输出流
control.RenderControl(hw);//将服务器控件的内容输出到所提供的 HtmlTextWriter 对象中 HttpContext.Current.Response.Write("<html><head><meta http-equiv=Content-Type content=\"text/html; charset=gb2312\">");
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.Write("</body></html>");
HttpContext.Current.Response.End();
}
//调用
GridviewToExcel(grd, "application/vnd.ms-excel.numberformat:@", "xx.xls");
//datatable 转excel
public void DataTabletoExcel(System.Data.DataTable tmpDataTable, string strFileName)
{
if (tmpDataTable == null) return;
int rowNum = tmpDataTable.Rows.Count;
int columnNum = tmpDataTable.Columns.Count;
int rowIndex = ;
int columnIndex = ;
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
xlApp.DefaultFilePath = "";
xlApp.DisplayAlerts = true;
xlApp.SheetsInNewWorkbook = ;
Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.ActiveSheet;
//将DataTable的列名导入Excel表第一行
foreach (DataColumn dc in tmpDataTable.Columns)
{
columnIndex++;
xlApp.Cells[rowIndex, columnIndex] = dc.ColumnName; } //将DataTable中的数据导入Excel中
xlSheet.Range[xlSheet.Cells[, ], xlSheet.Cells[rowNum + , columnNum+]].NumberFormatLocal = "@";//将格式设置成文本
for (int i = ; i < rowNum; i++)
{
rowIndex++;
columnIndex = ;
for (int j = ; j < columnNum; j++)
{
columnIndex++;
xlApp.Cells[rowIndex, columnIndex] = tmpDataTable.Rows[i][j].ToString(); } }
//xlBook.SaveCopyAs(HttpUtility.UrlDecode(strFileName, System.Text.Encoding.UTF8));
xlBook.SaveCopyAs(strFileName);
}
DataTabletoExcel(ds, Server.MapPath("") + "\\xx.xlsx");
//文件下载 参数 文件名 文件路径
public void DownFileToLocal(string FileName,string FilePath) {
FileInfo fileInfo = new FileInfo(FilePath);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
HttpContext.Current.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
HttpContext.Current.Response.AddHeader("Content-Transfer-Encoding", "binary");
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
HttpContext.Current.Response.WriteFile(fileInfo.FullName);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
C# DataTable下载的更多相关文章
- Npoi List DataTable导出一个Excel多个sheet 下载
参考: http://blog.csdn.net/zhouqinghe24/article/details/8649346 参考下载http://www.cnblogs.com/dyllove98/a ...
- Asp.net 模板下载和导入到DataTable中
HTML页面: <tr> <td colspan=" style="text-align: left; border: 1px;"> <as ...
- DataTable数据导出到Excel,并发送到客户端进行下载
本代码实现思路是:页面显示和导出分开,导出的数据和用于页面显示的是同一查询数据方式,所以也是同样的数据,只是在导出数据时从数据库重新捞了一次数据.此导出数据方式会先将数据保存到Excel中,然后将创建 ...
- c#用object将datatable快速填充excel后下载表格后打不开的问题
最近在用c#的asp.net,需要批量导出数据.原本用的是stringbuilder逐个填充,但是只能做到html强制格式转换为xls,这不是真正的excel表格,所以在网上找了datatable快速 ...
- Web Api 将DataTable装换成Excel,并通过文件流将其下载
不废话,直接上代码 前端代码 <input type="button" class="layui-btn" value="Test-GetFil ...
- DataTable 导出Excel 下载 (NPOI)
public class ExcelHelper { public void DownLoadExcelNew(System.Data.DataTable data, Hashtable h, ...
- DataTable数据导出Excel 并且下载
public string Excel(System.Data.DataTable dt) { //模板的路径 string strUploadPath = HttpContext.Current.S ...
- 【ASP.NET】DataTable导出EXCEL,弹窗提示下载保存(完整代码)
//新建ASPX protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); Data ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
随机推荐
- 【爆料】-《伯明翰大学学院毕业证书》UCB一模一样原件
☞伯明翰大学学院毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归 ...
- 【毕业原版】-《巴斯大学毕业证书》Bath一模一样原件
☞巴斯大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&am ...
- rand ----MATLAB (经典)
最近一直在学习matlab,我相信有一些同学已经发现,最近更新的关于matlab的内容比较多, 希望能够帮助到未来的小学弟学妹们! 永远爱你们的 ----新宝宝 rand 均匀分布的随机数全页折叠 语 ...
- openoffice转换pdf 异常问题查找处理 errorCode 525
could not save output document; OOo errorCode: 525 该问题是由于java程序和openoffice的启动所属用户不同导致.使用以下命令查看端口和进程 ...
- window10 hello 人脸识别无法启动相机的问题
win10设置人脸识别的时候无法打开相机.但是在qq,其他软件中可以调用相机,可以打开相机的时候.windows hello 就是打不开,不知道怎么回事. 尝试打开电源选项,有一个 选项,还原一下 ...
- Django基础四<二>(OneToMany和 ManyToMany,ModelForm)
上一篇博文是关于setting.py文件数据库的配置以及model与数据库表关系,实现了通过操作BlogUser,把BlogUser的信息存入后台数据库中.实际开发中有许多东西是相互联系的,除了数据的 ...
- C#-Xamarin的Android项目开发(二)——控件应用
相信我,这不是一篇吐槽文章.... 基础控件 Android的控件和控件样式非常特别,它是一种内联特别高的设计模式,换句话说,它是非常烂的设计.... 但在这种特别的关系里还是有一定的规律的,下面我们 ...
- 用Python学分析:集中与分散
散点图进阶,结合箱体图与直方图对数据形成全面的认识 描述数据集中趋势的分析量: 均值 - 全部数据的算术平均值 众数 - 一组数据中出现次数最多的变量值 中位数 - 一组数据经过顺序排列后处于中间位置 ...
- Android进阶加密-第1章-Android系统架构-读书笔记
第 1 章 Android 系统架构 1.1 Android 系统架构 Android 系统架构分为五层,从上到下依次是应用层.应用框架层.系统运行库层.硬件抽象层和 Linux 内核层. 应用层(S ...
- sau交流学习社区第三方登陆github--oauth来实现用户登录
sau交流学习社区第三方登陆github--oauth来实现用户登录 最近在丰富nodejsBlog开发的“交流学习社区”(https://www.mwcxs.top)的其他功能以及修复一些bug. ...