using SQLData; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SiteCore; public partial class plug_oImports : BasePage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { } } private bool checkFile(HttpPostedFile postedFile) { if (postedFile != null && postedFile.ContentLength > 0) { string fileName = postedFile.FileName; if (fileName.IndexOf(".xls", StringComparison.OrdinalIgnoreCase) == -1) return false; string fileType = postedFile.ContentType; if (fileType == "application/vnd.ms-excel" || fileType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") return true; } return false; } protected void btnSure_Click(object sender, EventArgs e) { HttpPostedFile postedFile = xlsFile.PostedFile; if (!checkFile(postedFile)) { litResult.Text = "选择上传的文件格式不正确,无法上传,格式是xls或xlsx!"; return; } string exted = Path.GetExtension(postedFile.FileName); string filePath = ""; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string file = filePath+"\\"+DateTime.Now.ToFileTime() + exted; postedFile.SaveAs(file); if (File.Exists(file)) { DataSet ds = ExcelDataSource(file); DataTable dt = ds.Tables[0]; //dt.Rows.RemoveAt(0); StringBuilder str = new StringBuilder(); //str.Append(" declare @userId int ;"); foreach (DataRow dr in dt.Rows) { string personName = dr[0].ToString().Trim(); if (personName == "序号") continue; if (personName == "") break; //不存在则新增会员 str.AppendFormat(" delete from S_Subject where title='{0}';", dr[1].ToString().Trim()); str.Append(" insert into S_Subject(title,stype,optiona,optionb,optionc,optiond,answer,resolution,point)"); str.AppendFormat(" Values('{0}',{1},'{2}','{3}','{4}','{5}','{6}','{7}',{8}) ;", dr[1].ToString().Trim(), getType(dr[2].ToString().Trim()), dr[3].ToString().Trim(), dr[4].ToString().Trim(), dr[5].ToString().Trim(), dr[6].ToString().Trim(), dr[7].ToString().Trim(), dr[8].ToString().Trim(), dr[9].ToString().Trim()); } if (str.Length > 0) { DbHelper.DbConn.ExecuteNonQuery(str.ToString()); //DbHelper.DbConn.ExecuteNonQuery(str.ToString()); litResult.Text = "导入成功!"; ShowResult("导入成功", "closeFn();"); } } } private int getType(string t) { t = t.Replace("题", ""); switch (t) { case "单选":return 1; case "多选": return 2; case "判断": return 3; } return 1; } public static DataSet ExcelDataSource(string filepath) { string strConn = "Provider=Microsoft.ACE.OleDb.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=yes;IMEX=1;'"; //string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); ArrayList al = new ArrayList(); foreach (DataRow dr in sheetNames.Rows) { al.Add(dr[2]); } OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + al[0] + "]", strConn); DataSet ds = new DataSet(); oada.Fill(ds); conn.Close(); return ds; } } }