作者:乔山办公网日期:
返回目录:excel表格制作
将EXCEL读取出来,形成一个WHERE条件后面的语句,然后再到数据库里查。
protected void Button1_Click(object sender, EventArgs e)
{
string strfilename = fileUpload.PostedFile.FileName;
string sType = System.IO.Path.GetExtension(strfilename);
string name = strfilename.Substring(strfilename.LastIndexOf("\\") + 1).Split('.')[0];
if (sType != ".xls")
{
// 文件格式错误
Response.Write("<script>alert('文件格式不正确!');</script>");
if (radType1.Checked == true)
{
tabType1.Style["display"] = "";
tabType2.Style["display"] = "none";
}
else
{
tabType1.Style["display"] = "none";
tabType2.Style["display"] = "";
}
return;
}
// 文件copy路径
string filePath = System.IO.Path.GetDirectoryName(Page.Request.PhysicalApplicationPath) + "\\down_file\\" + strfilename.Substring(strfilename.LastIndexOf("\\") + 1);
try
{
if (cc == "click")
{
// 复制文件到服务器
fileUpload.SaveAs(filePath);
}
// 读取服务器上的文件
DataSet ds1 = ExcelToDS(filePath, name);
}
catch
{
// 文件格式错误
Response.Write("<script>alert('读取文件出e799bee5baa6e79fa5e98193e78988e69d83364错!');</script>")
if (File.Exists(filePath))
{
File.Delete(filePath);
}
}
}
}
private DataSet ExcelToDS(string strFileName, string sheetName)
{
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "
+ strFileName + ";Extended Properties = Excel 8.0";
OleDbConnection oleConnection = new OleDbConnection(strConnection);
try
{
oleConnection.Open();
DataSet dsRead = new DataSet();
OleDbDataAdapter oleAdper = new OleDbDataAdapter(" SELECT * FROM ["
+ sheetName + "$]", oleConnection);
oleAdper.Fill(dsRead, "result");
oleConnection.Close();
return dsRead;
}
catch //(Exception ex)
{
//MessageBox.Show(ex.ToString());
oleConnection.Close();
return null;
}
finally
{
oleConnection.Close();
}
}
DataSet ds1就是你导出的Excel集合。
前提是EXCEL的表名必须与它里面的sheet名一样,而且不要是中文的,否则会读取出错。
如果只想导百abc.xls表中的部分列,可度采用以下命令:问
INSERT INTO a(a1,a2) SELECT X,Z FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\abc.xls',sheet1$)
备注:在答执行insert语句内之前,abc.xls这个文件容必须关闭。
1.数据透视视图是处理Excel常用的手段,而应用数据透视视图的第一步就是导入数据,如本例中,表中zhidao有889167行数据,那么将这些数据导入Excel表中将是一个很漫长的过程,可以借助SQL语句选择性的导入数据,以此来提交数据加载的速度。
2.打开空白Excel,依次点击【数据】选项卡【自Access按钮】。
3.在弹出的【选择数据源】对话框中打开ACCESS文件,本文中则打专开文件名为“无线路由”的实例文件;
4.在弹出的【导入数据】对话框中根据需求选择数据的显示方式,是“表”、“数据透视表”、“数据透视图”等等,本文中选择“数据透视图”,并单击对话框下方的【属性】按钮;
5.在弹出的【链接属性】对话框中选择【定义】选项卡,更改命令类型为“SQL”,命令文本为SQL代码,至此发现属Excel已经为筛选出了所有安卓设备。
貌似ADO没办法连接带密码的EXCEL,只有使用EXCEL.Application来解决了
------------------------------
不对