jiang_jiajia10漂亮姐姐帮帮我

wokan_woxihuan 2008-12-25 05:35:26
直接从数据库查询数据导出到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();
...全文
284 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovehongyun 2008-12-26
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 jiang_jiajia10 的回复:]
LS2位,明确告诉你本人现在是女性。这号三个人在上。你们以后的帖子不会回了哦。你们也用不着我回能力都那么强。
[/Quote]
jiang_jiajia10 2008-12-26
  • 打赏
  • 举报
回复
LS2位,明确告诉你本人现在是女性。这号三个人在上。你们以后的帖子不会回了哦。你们也用不着我回能力都那么强。
jhdxhj 2008-12-26
  • 打赏
  • 举报
回复
这个漂亮姐姐是个男的好不好!!
lxl_sports 2008-12-26
  • 打赏
  • 举报
回复
嘿嘿~~!!!
顶顶更健康。。。
jiajia 你是man or woman????


我感觉应该是佳佳哥哥或者弟弟吧 ^_^。。。
Jinglecat 2008-12-26
  • 打赏
  • 举报
回复

foreach (DataRow dr in dt.Rows)
{
sw.WriteLine(" '" + Convert.ToInt64(dr["id"]).ToString("E") + "," + " '" + Convert.ToInt32(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());
}
gongsun 2008-12-26
  • 打赏
  • 举报
回复
这称呼叫的太恶心...
jiang_jiajia10 2008-12-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wangping_li 的回复:]
你可以导出前设置:
文本:vnd.ms-excel.numberformat:@
日期:vnd.ms-excel.numberformat:yyyy/mm/dd
数字:vnd.ms-excel.numberformat:#,##0.00
货币:vnd.ms-excel.numberformat:¥#,##0.00
百分比:vnd.ms-excel.numberformat: #0.00%

这里有一个孟老大给的例子,可以参考下:

http://dotnet.aspx.cc/article/8a4cbf47-b888-4832-3389-ed3a3a3c8aab/read.aspx
[/Quote]
说的挺好啊。你照着看看
lanxingxing 2008-12-26
  • 打赏
  • 举报
回复
楼上是个漂亮姐姐
sxmonsy 2008-12-26
  • 打赏
  • 举报
回复
漂亮姐姐在哪
dd__dd 2008-12-26
  • 打赏
  • 举报
回复
漂亮姐姐没来啊,哈哈
zjybushiren88888 2008-12-25
  • 打赏
  • 举报
回复
帮顶个, 吼吼
wuyq11 2008-12-25
  • 打赏
  • 举报
回复
用com组件
Excel.Range r1;
r1=yourexcel.get_Range(myexcel.Cells[i,n],myexcel.Cells[j,n]);
r1.NumberFormatLocal= "@";

参考
http://www.cnblogs.com/codingsilence/articles/1133003.html
igelf 2008-12-25
  • 打赏
  • 举报
回复
冲漂亮姐姐来的..
lovehongyun 2008-12-25
  • 打赏
  • 举报
回复
我来看漂亮佳佳的
wangping_li 2008-12-25
  • 打赏
  • 举报
回复
上面的格式你根据实际情况来设定的,并不是全部都要
wangping_li 2008-12-25
  • 打赏
  • 举报
回复
你可以导出前设置:
文本:vnd.ms-excel.numberformat:@
日期:vnd.ms-excel.numberformat:yyyy/mm/dd
数字:vnd.ms-excel.numberformat:#,##0.00
货币:vnd.ms-excel.numberformat:¥#,##0.00
百分比:vnd.ms-excel.numberformat: #0.00%

这里有一个孟老大给的例子,可以参考下:

http://dotnet.aspx.cc/article/8a4cbf47-b888-4832-3389-ed3a3a3c8aab/read.aspx
空心兜兜 2008-12-25
  • 打赏
  • 举报
回复
关注下
kingcsx666 2008-12-25
  • 打赏
  • 举报
回复
没看到美女过来啊
sjt000 2008-12-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zxy98 的回复:]
把excel对应列设置为文本格式,就没问题了
[/Quote]
同意
clever_yang 2008-12-25
  • 打赏
  • 举报
回复
我上面的方法有给你解决科学记数法的问题的:
请注意: vnd.ms-excel.numberformat:@ 就是起这个作用的~...
加载更多回复(8)

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧