怎样把excel里的数据作为条件 导入到sql语句中
1.打开SQL Server Management Studio,按图中的路径进入导入数据界面。
2.导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。
3.数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。
4.选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。
5.再次确认文件路径没有问题,点击下一步。
6.默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。
7.选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据不想导入,则可以编写查询指定的数据进行导入。点击下一步。
8.选择需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。
9.点击进入下一步。
10.在这里完整显示了导入的信息,执行内容,再次确认无误后,点击完成,开始执行。
11.可以看到任务执行的过程和进度。
12.执行成功:可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT * FROM price$就可以查看已导入的数据内容。
先把Excel的那个Sheet导到数据库里形成一张表xls_Customer(如MSSQL的导入导出数据的工具)
然后你的where 客编 in (select 客编 from xls_Customer)
或者直接使用OPENDATASOURCE、OPENROWSET(MSSQL)这类的打开外部数据原的语句使用excel的sheet,where 客编 in (select 客编 from OPENDATASOURCE(XXXX)...[$sheet1]),具体格式参考联机帮助和网上众多介绍贴
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('读取文件出错!');</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名一样,而且不要是中文的,否则会读取出错。
广告 您可能关注的内容 |