/判断文件上传是否成功
private bool Upload(string uploadPath)
{
try
{
this.uploadFile.PostedFile.SaveAs(uploadPath); //上传Excel并保存,在这里判断是否保存成功
return true;
}
catch
{
return false;
}
}
//文件上传
protected void btnUpload_Click(object sender, EventArgs e)
{
//获取文件完整路径
string fullName = this.FileUpload1.PostedFile.FileName;
if (string.IsNullOrEmpty(fullName))
{
Response.Write("请选择要上传的文件!");
return;
}
//获取上传文件的大小
int fileLength = this.FileUpload1.PostedFile.ContentLength;
if (fileLength > 512000)
{
Response.Write("文件超过500K,无法上传!");
return;
}
FileInfo fi = new FileInfo(fullName);
//获取该文件的扩展名
string fileExt = fi.Extension;
if (!fileExt.ToLower().Equals(".xls"))
{
Response.Write("上传文件格式不正确!");
return;
}
string uploadPath = Page.MapPath(@"uploadfile/经销商设置表.xls");
bool upSuccess = Upload(uploadPath);
if (!upSuccess)
{
Response.Write("文件上传失败,请检查文件的执行权限!");
return;
}
DataTable dt = GetExcelTable(uploadPath);
if (dt == null)
{
Response.Write("文件读取失败!");
return;
}
else
{
//执行导入
DataTable dts = GetExcelTable(uploadPath);
try
{
int s = 0;//成功
int f = 0;//失败
if (dts != null && dts.Rows.Count > 0)
{
for (int i = 0; i < dts.Rows.Count; i++)
{
// 添加经销商信息
if (AddValidate(dt.Rows[i]))
{
def.Cid = Session[Constant.SS_CID].ToString();
if (!string.IsNullOrEmpty(dt.Rows[i][1].ToString()))
{
def.DealerName = dt.Rows[i][1].ToString();
}
def.Address = dt.Rows[i][8].ToString();
def.PostCode = dt.Rows[i][9].ToString();
def.LinkMan = dt.Rows[i][10].ToString();
def.LinkTel = dt.Rows[i][11].ToString();
def.MobileTel = dt.Rows[i][12].ToString();
def.Fax = dt.Rows[i][13].ToString();
def.Email = dt.Rows[i][14].ToString();
if (!string.IsNullOrEmpty(dt.Rows[i][6].ToString()) && dt.Rows[i][6].ToString() == "是")
{
def.DStatus = "1";
}
else
{
def.DStatus = "0";
}
if (!string.IsNullOrEmpty(dt.Rows[i][7].ToString()) && dt.Rows[i][7].ToString() == "是")
{
def.AllowOut = 1;
}
else
{
def.AllowOut = 0;
}
int nM = dealer.AddDealerMsg(def);
if (nM == 0)
{
this.txtarea.InnerText += "/n第" + (i + 1) + "条添加失败/n";
f++;
}
else
{
s++;
}
}
else
{
this.txtarea.InnerText += "/n第" + (i + 1) + "条添加失败 " + Label3.Text + "/n";
f++;
}
}
}
else
{
Response.Write("导入的Excel内无数据!");
return;
}
if (s > 0 || f > 0)
{
this.Label3.Text = "其中成功插入" + s + "条,失败" + f + "条!";
}
if (f > 0)
this.LinkButton2.Visible = true;
else
this.LinkButton2.Visible = false;
this.Label3.Visible = true;
this.note.Visible = true;
return;
}
catch
{
Response.Write("操作失败!");
}
}
}
//读取Excel文件
private DataTable GetExcelTable(string uploadPath)
{
DataSet ds = new DataSet();
string Xls_ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + uploadPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";//HDR为yes 则第一数据行为列名,为no 则自动为列加列名F1 F2 F3
OleDbConnection conn = new OleDbConnection(Xls_ConnStr);
try
{
conn.Open();
string sql_str = "select * from [Sheet1$]";
OleDbDataAdapter oda = new OleDbDataAdapter(sql_str, conn);
oda.Fill(ds, "excel_date");
conn.Close();
}
catch
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
return null;
}
finally
{
conn.Dispose();
}
if (ds == null)
{
return null;
}
if (ds.Tables.Count < 1)
{
return null;
}
return ds.Tables[0];
}
private bool AddValidate(DataRow dr)
{
return true;//验证输入的合法性
}