CVS文件导入导出
来源:互联网 发布:传世传家宝 源码 编辑:程序博客网 时间:2024/04/26 07:54
public partial class Salepromotion_SendCoupon : System.Web.UI.Page
{
DevExpress.Xpo.Session s;
protected void Page_Init(object sender, EventArgs e)
{
s = EC.Module.XpoHelper.GetNewSession();
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ASPxButton1_Click(object sender, EventArgs e)
{
Response.BufferOutput = false;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Stream stream = Request.Files[0].InputStream;
StreamReader sdr = new StreamReader(stream, Encoding.Default);
using (CsvReader csv = new CsvReader(sdr, true))
{
InPutCoupon(csv);
}
}
private void ShowClientMsgFlow(string msg, string color)
{
Response.Write("<div style='color:" + color + ";font-size:14px; padding-left:30px;'>" + HttpUtility.HtmlEncode(msg).Replace(Environment.NewLine, "<br/>") + "</div>");
Response.Write("<script stype='text/javascript'>window.scrollTo(0,999999);</script>");
Response.Flush();
}
void InPutCoupon(CsvReader csv)
{
string FileName = Request.Files[0].FileName.Substring(Request.Files[0].FileName.LastIndexOf('\\') + 1);
ViewState["Name"] = Request.Files[0].FileName.Substring(Request.Files[0].FileName.LastIndexOf('\\') + 1);
//判断改文件名是否存在过
string Sql = "select count(*) from [SendCouponLog] where FileNames='" + FileName + "'";
Object ob = MSSqlHelper.GetScalar(Sql);
if (ob != null)
{
if (Convert.ToInt32(ob.ToString()) > 0)
{
ShowClientMsgFlow("该文件名已经导入过", "");
return;
}
}
int i = 2;
string strcount = "";
int count = 0;
List<string> list = new List<string>();
try
{
foreach (var item in csv)
{
string str = "";
str += "正在导入第" + i + "行...\r\n";
if (item[0] != "" && item[1] != "")
{
if (item[0] == "")
{
str += "第" + i + "行手机号码不能为空!\r\n";
}
else if (item[0].ToString().Length > 11)
{
str += "第" + i + "行手机号码格式不正确!\r\n";
}
else if (item[1] == "")
{
str += "第" + i + "行优惠券类型不能为空!\r\n";
}
else
{
try
{
Coupon c = s.FindObject<Coupon>(DevExpress.Data.Filtering.CriteriaOperator.Parse("Oid=?", item[1]));
if (c == null)
{
str += "第" + i + "行优惠券类型错误 不能生成!\r\n";
i = i + 1;
list.Add(str);
continue;
}
else
{
CouponDetail coupondetail = new CouponDetail(s);
if (c.CoupontimeType == CouponTimeType.按时间范围)
{
str += "第" + i + "行优惠券类型不为发放后多少天生效的 不能生成!\r\n";
}
if (c.CoupontimeType == CouponTimeType.发放后多少天有效)
{
Sql = "INSERT INTO [dbo].[SendCouponLog]([CreatedDate],[CreatedUser],coupon ,[MobilePhone],[FileNames],[Number]) VALUES";
Sql += "('" + DateTime.Now + "','" + ECMembership.Current.LoginUserInfo.LoginName + "'," + item[1] + ",'" + item[0] + "','" + FileName + "','')";
}
try
{
MSSqlHelper.Execute(Sql);
if (!str.Equals("正在导入第" + i + "行...\r\n"))
{
str += "导入第" + i + "行失败!\r\n\r\n";
i = i + 1;
list.Add(str);
continue;
}
else
{
strcount += item[0] + "\r\n";
str += "导入第" + i + "行成功!\r\n\r\n";
i += 1;
count += 1;
list.Add(str);
}
}
catch
{
str += "第" + i + "生成失败!\r\n";
}
}
}
catch (Exception)
{
str += "第" + i + "行优惠券类型错误 不能生成!\r\n";
}
}
}
else
{
str += "第" + i + "行 手机号码或优惠券类型不能为空,不用导入!\r\n\r\n";
i += 1;
list.Add(str);
continue;
}
}
if (list.Count > 0)
{
this.Button1.Visible = true;
string ss = "";
foreach (string item in list)
{
ss += item;
}
this.ASPxButton1.Enabled = true;
this.ASPxButton1.Text = "上传";
throw new EC.Common.ECException(ss);
}
else
{
throw new EC.Common.ECException("没有发现要导入的记录!");
}
}
catch (EC.Common.ECException ex)
{
this.ASPxButton1.Enabled = true;
ShowClientMsgFlow(ex.Message, "");
ShowClientMsgFlow("本次共导入" + count + "行\r\n" + strcount, "");
}
catch (Exception exx)
{
this.ASPxButton1.Enabled = true;
ShowClientMsgFlow(exx.Message, "");
ShowClientMsgFlow("本次共导入" + count + "行\r\n" + strcount, "");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string[] ExportHead = { "手机号码", "号码" };
CSVWriter csvWriter = new CSVWriter();
csvWriter.WriteHead(ExportHead);
string Sql = " select Oid, coupon ,[MobilePhone] from [SendCouponLog] where FileNames='" + ViewState["Name"].ToString() + "'";
DataTable dt = MSSqlHelper.GetDataSet(Sql).Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string Number = "";
for (int j = 0; j < 1; j++)
{
Number = "A" + Guid.NewGuid().ToString("N").ToUpper().Substring(0, 9);
Sql = "insert into [CouponDetail] ([CreateTime],[Coupon],[Status],[Number]) values (GETDATE()," + dt.Rows[i]["coupon"] + ",0,'" + Number + "')";
try
{
MSSqlHelper.Execute(Sql);
string Update = "update [SendCouponLog] set [Number]='" + Number + "' where oid=" + dt.Rows[i]["Oid"].ToString();
MSSqlHelper.Execute(Update);
}
catch
{
j = 0;
}
}
string[] ExportContent = { dt.Rows[i]["MobilePhone"].ToString(), Number };
csvWriter.WriteRow(ExportContent);
}
string CVSCotent = csvWriter.GetCSVContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("生成后" + ViewState["Name"].ToString()));
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(CVSCotent);
Response.End();
}
}
- CVS文件导入导出
- MySql数据导入导出cvs文件命令
- MySql数据导入导出cvs文件命令
- MySql数据库导入导出.cvs文件命令
- CVS文件导入
- sqlserver导出CVS文件换行
- oracle导入cvs文件方法
- 导入cvs文件的方法
- 黑盒测试之导入CVS文件之什么是CVS文件
- MySql数据导出到cvs文件命令
- 简单的excel cvs 文件导入功能
- 文件导入导出SQL
- mysql导入导出文件
- 文件导入导出
- 文件的导入导出
- 数据库导入导出文件
- 导入导出xml文件
- csv文件导入导出
- U-Boot启动过程完全分析
- 分享10个便利的HTML5/CSS3框架
- (2011.11.11) 4_a1.cpp -- 下三角矩阵的压缩存储定义
- 谈谈Linux内核驱动的coding style
- 【KMP】POJ 2406
- CVS文件导入导出
- hash code相关(转载自http://hi.baidu.com/lkdlhw_2000/blog/item/c28a044a7ddeab2208f7ef41.html)
- 《高效能人士的七个习惯》精彩书摘
- 一个字典,给你一个word找出所有anagram [No. 18]
- hdu 1698 Just a Hook
- The 1 Pixel Rounding Error Problem
- debian6 安装 cfce4
- JavaMail发送邮件实例
- php date 函数详解