1:当用户导出时,直接将数据导出客户端.具体的逻辑代码如下面小例子:
如果需要导出为GSV文件,只需要上例分隔符“\t”用“,”替换就可以了。
//根据需要得到数据表
DataTable thisTable = getTable(condition.ToString());
if (thisTable != null)
{
StringWriter sw = new StringWriter();
sw.WriteLine("编号\t帐号\t姓名\t电话\t地址\t金额\t开通时间");
foreach (DataRow dr in thisTable.Rows)
{
sw.WriteLine(dr["F_ID"] + "\t" + dr["F_Psnid"] + "\t" + dr["F_Name"] + "\t" + dr["F_Tel"]
+ "\t" + dr["F_Address"] + "\t" + dr["F_TradeMoney"] + "\t" + dr["F_TradeTime"]);
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=YinHeUserInfo.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}
2:文件流的操作
string filePath = "d:\\data.xls";//这个你可以自己修改为虚拟路径
FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"));
sw.WriteLine("编号\t帐号\t姓名\t电话\t地址\t金额\t开通时间");
foreach (DataRow dr in thisTable.Rows)
{
sw.WriteLine(dr["F_ID"] + "\t" + dr["F_Psnid"] + "\t" + dr["F_Name"] + "\t" + dr["F_Tel"]
+ "\t" + dr["F_Address"] + "\t" + dr["F_TradeMoney"] + "\t" + dr["F_TradeTime"]);
}
sw.Close();
fs.Close();
#region==如果要下载到客户端,则添加下列代码==
//Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(filePath));
//Response.ContentType = "application/ms-excel";// 指定返回的是一个不能被客户端读取的流,必须被下载
//Response.WriteFile(filePath); // 把文件流发送到客户端
//Response.End();
#endregion
浙公网安备 33010602011771号