public
DataSet GetDataSet(
string
filePath)
{
string
Connstr =
string
.Format(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"
+ filePath +
"';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
);
OleDbConnection Conn =
new
OleDbConnection(Connstr);
ArrayList sheetNamelist =
new
ArrayList();
int
sheetCount = Convert.ToInt32(ConfigurationManager.AppSettings[
"sheetCount"
].ToString());
DataSet dsExcel =
new
DataSet();
try
{
if
(Conn.State == ConnectionState.Closed)
{
Conn.Open();
}
DataTable dtExcelSchema = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new
object
[] {
null
,
null
,
null
,
"Table"
});
string
sheetName =
string
.Empty;
if
(dtExcelSchema.Rows.Count > sheetCount)
{
Page.RegisterStartupScript(
""
,
"<mce:script type="
text/javascript"><!--
alert(
'很抱歉!你上传Excel文件sheet总数过多不能大于10个sheet..!! '
)
return
;
}
else
{
for
(
int
j = 0; j < dtExcelSchema.Rows.Count; j++)
{
sheetName = String.Format(
"Sheet{0}$"
, j + 1);
sheetNamelist.Add(sheetName);
}
}
}
catch
(Exception ex)
{
throw
new
Exception(ex.Message.ToString(), ex);
}
finally
{
Conn.Close();
}
try
{
string
strSQL =
string
.Empty;
for
(
int
i = 0; i < sheetNamelist.Count; i++)
{
strSQL =
"select * from ["
+ sheetNamelist[i].ToString() +
"]"
;
OleDbDataAdapter da =
new
OleDbDataAdapter(strSQL, Conn);
DataTable dtExcel =
new
DataTable(sheetNamelist[i].ToString());
da.Fill(dtExcel);
dsExcel.Tables.Add(dtExcel);
}
return
dsExcel;
}
catch
(Exception ex)
{
throw
new
Exception(ex.Message.ToString(), ex);
}
}
public
void
InsertData(DataSet ds) {
string
strSQL=
string
.Empty;
if
(ds.Tables[0].Rows.Count > 0)
{
for
(
int
j = 0; j < ds.Tables.Count; j++)
{
for
(
int
i=0;i<ds.Tables[j].Rows.Count;i++)
{
DataRow dr=ds.Tables[j].Rows[i];
string
groupname = dr[
"组名"
].ToString().Trim();
string
contactName = dr[
"联系人"
].ToString().Trim();
string
mobile = dr[
"手机号码"
].ToString().Trim();
string
companyName = dr[
"公司名称"
].ToString().Trim();
string
officeNum = dr[
"办公号码"
].ToString().Trim();
string
homeNum = dr[
"家庭号码"
].ToString().Trim();
string
Email = dr[
"邮 箱"
].ToString().Trim();
string
address = dr[
"联系地址"
].ToString().Trim();
string
createtime = dr[
"创建时间"
].ToString().Trim();
string
Sex = dr[
"性别"
].ToString().Trim();
string
mobileType = dr[
"手机套餐类型"
].ToString().Trim();
string
isOpen = dr[
"是否开通通信助理"
].ToString().Trim();
strSQL =
"insert into msm_Excel(groupName,Mobile,Name,companyName,officeNum,homeNum,Emial,address,Createtime,Sex,mobileType,isOpen)values('"
+ groupname +
"','"
+ mobile +
"','"
+ contactName +
"','"
+ companyName +
"','"
+ officeNum +
"','"
+ homeNum +
"','"
+ Email +
"','"
+ address +
"','"
+ createtime +
"','"
+ Sex +
"','"
+ mobileType +
"','"
+ isOpen +
"')"
;
try
{
int
n = SQLHelper.SqlDataExecute(strSQL);
if
(n > 0)
{
Page.RegisterStartupScript(
""
,
"<mce:script type="
text/javascript"><!--
alert(
'数据插入成功!'
)
Label1.Text =
"一共成功插入"
+ ds.Tables[j].Rows.Count.ToString() +
"条数据"
;
}
else
{
Page.RegisterStartupScript(
""
,
"<mce:script type="
text/javascript"><!--
alert(
'服务器繁忙!请稍候再试..!'
)
}
}
catch
(Exception ex)
{
throw
ex;
}
}
}
}
else
{
Page.RegisterStartupScript(
""
,
"<mce:script type="
text/javascript"><!--
alert(
'此Excel文件中无数据!!!'
)
}
}
string
fileName = FileUpload1.FileName;
if
(FileUpload1.PostedFile.FileName.Length == 0) {
Page.RegisterStartupScript(
""
,
"<mce:script type="
text/javascript"><!--
alert(
'请选择你要上传的Excel文件!!'
)
}
else
if
(!Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower().Equals(
".xls"
) && !Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower().Equals(
".xlsx"
))
{
Page.RegisterStartupScript(
""
,
"<script>alert('很抱歉!你上传的文件类型不正确!只能上传Excel类型的文件!')</script."
);
}
else
{
filePath = Server.MapPath(
"TxtFiles//"
) + DateTime.Now.ToString(
"yyyyMMddhhmmss"
)
+ fileName;
this
.FileUpload1.PostedFile.SaveAs(filePath);
ds = GetDataSet(filePath);
InsertData(ds);
}