jiang_jiajia10漂亮姐姐帮帮我
直接从数据库查询数据导出到EXCEL和.CSV文件
编码如:200800000001变成科学记数法
供应商编号:00001变成1
我现在在他们前面加了"'",可这样不利于数据再导入
帮帮忙漂亮,姐姐,我代码如下:
SqlConnection conn = new SqlConnection(Session["conString"].ToString());
SqlDataAdapter da = new SqlDataAdapter(Session["sql"].ToString(), conn);
DataSet ds = new DataSet();
da.Fill(ds, "table1");
DataTable dt = ds.Tables["table1"];
//存放到web.config中downloadurl指定的路径,文件格式为当前日期+4位随机数
string name = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["downloadurl"]) + DateTime.Today.ToString("yyyyMMdd") + new Random(DateTime.Now.Millisecond).Next(10000).ToString();
if (this.drotype.SelectedIndex == 1)
{
name = name + ".xls";
}
if (this.drotype.SelectedIndex == 2)
{
name = name + ".csv";
}
FileStream fs = new FileStream(name, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"));
if (this.drotype.SelectedIndex == 1)
{
sw.WriteLine("报价单号\t供应商编号\t供应商名称\t编号\t商品条码\t商品名称\t单位\t规格\t包装\t供货价\t建议售价\t创建日期\t审核日期\t单据属性\t备注");
foreach (DataRow dr in dt.Rows)
{
sw.WriteLine(" '" + dr["id"].ToString() + "\t" + " '" + dr["vendorid"].ToString() + "\t" + dr["vendorname"].ToString() + "\t" + dr["no"].ToString() + "\t" + " '" + dr["barcode"].ToString() + "\t" + dr["comname"].ToString() + "\t" + dr["unit"].ToString() + "\t" + dr["standards"].ToString() + "\t" + dr["package"].ToString() + "\t" + dr["price"].ToString() + "\t" + dr["saleprice"].ToString() + "\t" + " " + dr["createdate"].ToString() + "\t" + " " + dr["makedate"].ToString() + "\t" + dr["flag"].ToString() + "\t" + dr["remark"].ToString());
}
}
if (this.drotype.SelectedIndex == 2)
{
sw.WriteLine("报价单号,供应商编号,供应商名称,编号,商品条码,商品名称,单位,规格,包装,供货价,建议售价,创建日期,审核日期,单据属性,备注");
foreach (DataRow dr in dt.Rows)
{
sw.WriteLine(" '" + dr["id"].ToString() + "," + " '" + dr["vendorid"].ToString() + "," + dr["vendorname"].ToString() + "," + dr["no"].ToString() + "," + " '" + dr["barcode"].ToString() + "," + dr["comname"].ToString() + "," + dr["unit"].ToString() + "," + dr["standards"].ToString() + "," + dr["package"].ToString() + "," + dr["price"].ToString() + "," + dr["saleprice"].ToString() + "," + " " + dr["createdate"].ToString() + "," + " " + dr["makedate"].ToString() + "," + dr["flag"].ToString() + "," + dr["remark"].ToString());
}
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name));
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(name);
Response.End();