‘壹’ 怎样把excel里的数据作为条件 导入到sql语句中
1.打开SQL Server Management Studio,按图中的路径进入导入数据界面。
‘贰’ EXCEL表数据怎么导入到SQL
你好:
我以前做过此类程序,代码好长,我忘了,现在在网上摘录一则给你,写得还不错,应该可以,你编译试一下:
文件导入StringGrid。EXCEL电子表格作为办公软件OFFICE中的重要组成部份,是日常办公系统的主要助手,因此许多日常所需的业务方面的数据通常是通过电子表格存取。有时我们需要从日常工作中创建的EXCEL中取得数据进行操作、打印、查询,统计等工作。在这里我将介绍如何利用delphi完成excel电子表格中数据的操作。
一、 新建一项目,从控件栏servers中分别选取控件:excelapplication、excelworkbook1、excelworksheet,放到主窗体from1中,并加入stringgrid、三个按钮、五个显示字段内容的EDIT、二个操作显示记录的label、一个用于打开excel电子表格的控件opendialog等,如下图所示:
二、选择excel表'按钮,用于打开excel文件,其代码如下:
procere TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
opendialog1.Execute;
Try
ExcelApplication1.Connect;//excel应用程序
Except
MessageDlg('excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
excelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的excel 文件
except
begin
excelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;showmessage('请选择excel电子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与excelworkbook1建立连接
//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭excel
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=excelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
excelApplication1.Disconnect;
excelApplication1.Quit;
//将第一条数据赋给编辑框
edit2.text:=stringgrid1.Cells[1,1];
edit1.text:=stringgrid1.Cells[2,1];
edit3.text:=stringgrid1.Cells[3,1];
edit4.text:=stringgrid1.Cells[4,1];
edit5.text:=stringgrid1.Cells[5,1];
exit;
end;
end;
end;
三、'下一条记录'按钮,完成记录向下移动,代码如下:
procere TForm1.Button2Click(Sender: TObject);
var x:integer;
begin
x:=stringgrid1.row+1;
if x<> stringgrid1.RowCount then
begin
stringgrid1.row:=stringgrid1.row+1;
label1.caption:=inttostr(x);
edit2.text:=stringgrid1.Cells[1,x];
edit1.text:=stringgrid1.Cells[2,x];
edit3.text:=stringgrid1.Cells[3,x];
edit4.text:=stringgrid1.Cells[4,x];
edit5.text:=stringgrid1.Cells[5,x];
exit;
end
else
showmessage('已到第一条记录!');
end;
四、'上一条记录',完成记录上移,代码如下:
var x:integer;
begin
x:=stringgrid1.row-1;
if x<>0 then
begin
stringgrid1.row:=stringgrid1.row-1;
label1.caption:=inttostr(x);
edit2.text:=stringgrid1.Cells[1,x];
edit1.text:=stringgrid1.Cells[2,x];
edit3.text:=stringgrid1.Cells[3,x];
edit4.t
您正在看的DELPHI是:Excel文件导入StringGrid。ext:=stringgrid1.Cells[4,x];
edit5.text:=stringgrid1.Cells[5,x];
exit;
end
else
showmessage('已到最后一条记录!');
end;
五、stringgrid中上下移动时代码:
procere TForm1.StringGrid1Click(Sender: TObject);
var i:integer;
begin
i:=stringgrid1.Row;
label1.caption:=inttostr(i);
edit1.text:=stringgrid1.Cells[2,i];
edit2.text:=stringgrid1.Cells[1,i];
edit3.text:=stringgrid1.Cells[3,i];
edit4.text:=stringgrid1.Cells[4,i];
edit5.text:=stringgrid1.Cells[5,i];
end;
六、运行程序,点击按钮1打开excel表格。程序将启动EXCEL,并打开了选择的电子表格,这时请不要关闭EXCEL,当程序从EXCEL取数完毕将自动关闭EXCEL程序,应用程序取出了excel数据,显示在stringgrid中,并将第一笔数据各字段的值赋给了左边的对应的edit字段。点击按钮2、按钮3可以查看下一条或上一条记录。也可以使用光标在stringgrid1上移动。
同时我们也可以对stringgrid中的记录进行查询、定位。相反,也可以将数据库中的数据输入到EXCEL中。 总之,只要我们从EXCEL提取出数据,并保存到stringgrid中,我们就可以进行相应操作,如统计、查询、重新输出,使平进的excel电子表格中的数据在应用程序中得到利用。
你不贴出分数来,一般人不会回答你的
‘叁’ 怎么写sql语句将Excel的数据插入到SQL Server数据库
方法和详细的操作步骤如下:
1、第一步,准备Excel表,并希望将其导入SQL
Server 2012中的QearlTest数据库,见下图,转到下面的步骤。
‘肆’ Excel如何导入SQL数据库
在sql服务器上用企业管理工具中选择对应数据库的表再选择导入功能-选择要导入的EXCEL文件一直点击下一步再选择对应的字段再完成就行了。
‘伍’ 怎样将EXCEL数据表导入到SQL中
软件版本:Office2007
方法如下:
1.在mysql管理工具上面新建一个表:
‘陆’ 如何将excel表格数据导入sql数据库
1、打开企业管理器,打开要导入数据的数据库,在表上按右键,所有任务-->导入数据,弹出DTS导入/导出向导,按 下一步 ,
2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 ,
3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 ,
4、选择 用一条查询指定要传输的数据,按 下一步 ,
5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 ,
6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语句中 order by 后面所跟的列,按 下一步 ,
7、如果要全部导入,则选择 全部行,按 下一步,
8、则会看到根据前面的操作生成的查询语句,确认无误后,按 下一步,
9、会看到 表/工作表/Excel命名区域 列表,在 目的 列,选择要导入数据的那个表,按 下一步,
10、选择 立即运行,按 下一步,
11、会看到整个操作的摘要,按 完成 即可。
当然,在以上各个步骤中,有的步骤可以有多种选择,你可以根据自己的需要来选择相应的选项。例如,对编程有兴趣的朋友可以在第10步的时候选择保存DTS包,保存成Visual Basic文件,可以看看里面的代码,提高自己的编程水平
‘柒’ excel如何导入sql表
在SQL SERVER中右击数据库,选择菜单“任务”--“导入数据”即可。
在导入过程中,勾选将第一行做为列标题就可以,你还可以定义每一字段的字段类型。
‘捌’ excel如何导入sql server数据
最近在一个项目中需要用到Excel文件导入数据库的功能,本人很懒,所以到网上搜了一堆方法,但是通过对比,觉得一下三种是比较好用或者不是很常见的方法,希望对大家有所帮助。
方案一:通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQLServer,这种方法的优点是非常的灵活,可以对Excel表中的各个单元格进行用户所需的操作。
openFileDialog=newOpenFileDialog();
openFileDialog.Filter="Excelfiles(*.xls)|*.xls";
if(openFileDialog.ShowDialog()==DialogResult.OK)
{
FileInfofileInfo=newFileInfo(openFileDialog.FileName);
stringfilePath=fileInfo.FullName;
stringconnExcel="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filePath+";ExtendedProperties=Excel8.0";
try
{
=newOleDbConnection(connExcel);
oleDbConnection.Open();
//获取excel表
DataTabledataTable=oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
//获取sheet名,其中[0][1]...[N]:按名称排列的表单元素
stringtableName=dataTable.Rows[0][2].ToString().Trim();
tableName="["+tableName.Replace("'","")+"]";
//利用SQL语句从Excel文件里获取数据
//stringquery="SELECTclassDate,classPlace,classTeacher,classTitle,classIDFROM"+tableName;
stringquery="SELECT日期,开课城市,讲师,课程名称,持续时间FROM"+tableName;
dataSet=newDataSet();
//OleDbCommandoleCommand=newOleDbCommand(query,oleDbConnection);
//OleDbDataAdapteroleAdapter=newOleDbDataAdapter(oleCommand);
OleDbDataAdapteroleAdapter=newOleDbDataAdapter(query,connExcel);
oleAdapter.Fill(dataSet,"gch_Class_Info");
//从excel文件获得数据后,插入记录到SQLServer的数据表
DataTabledataTable1=newDataTable();
SqlDataAdaptersqlDA1=newSqlDataAdapter(@"SELECTclassID,classDate,
classPlace,classTeacher,classTitle,rativeDateFROMgch_Class_Info",sqlConnection1);
//SqlCommandBuildersqlCB1=newSqlCommandBuilder(sqlDA1);
sqlDA1.Fill(dataTable1);
foreach(DataRowdataRowindataSet.Tables["gch_Class_Info"].Rows)
{
DataRowdataRow1=dataTable1.NewRow();
dataRow1["classDate"]=dataRow["日期"];
dataRow1["classPlace"]=dataRow["开课城市"];
dataRow1["classTeacher"]=dataRow["讲师"];
dataRow1["classTitle"]=dataRow["课程名称"];
dataRow1["rativeDate"]=dataRow["持续时间"];
dataTable1.Rows.Add(dataRow1);
}
Console.WriteLine("新插入"+dataTable1.Rows.Count.ToString()+"条记录");
sqlDA1.Update(dataTable1);
oleDbConnection.Close();
}
catch(Exceptionex)
{
Console.WriteLine(ex.ToString());
}
}
方案二:直接通过SQL语句执行SQLServer的功能函数将Excel文件转换到SQLServer数据库。
OpenFileDialogopenFileDialog=newOpenFileDialog();
openFileDialog.Filter="Excelfiles(*.xls)|*.xls";
SqlConnectionsqlConnection1=null;
if(openFileDialog.ShowDialog()==DialogResult.OK)
{
stringfilePath=openFileDialog.FileName;
sqlConnection1=newSqlConnection();
sqlConnection1.ConnectionString="server=(local);integratedsecurity=SSPI;initialcatalog=Library";
//importexcelintoSQLServer2000
/*stringimportSQL="SELECT*intolive41FROMOpenDataSource"+
"('Microsoft.Jet.OLEDB.4.0','DataSource="+"""+"E:\022n.xls"+"""+
";UserID=;Password=;Extendedproperties=Excel5.0')...[Sheet1$]";*/
//exportSQLServer2000intoexcel
stringexportSQL=@"EXECmaster..xp_cmdshell
'bcpLibrary.dbo.live41out"+filePath+"-c-q-S"+"""+"""+
"-U"+"""+"""+"-P"+"""+"""+"'";
try
{
sqlConnection1.Open();
//SqlCommandsqlCommand1=newSqlCommand();
//sqlCommand1.Connection=sqlConnection1;
//sqlCommand1.CommandText=importSQL;
//sqlCommand1.ExecuteNonQuery();
//MessageBox.Show("importfinish!");
SqlCommandsqlCommand2=newSqlCommand();
sqlCommand2.Connection=sqlConnection1;
sqlCommand2.CommandText=exportSQL;
sqlCommand2.ExecuteNonQuery();
MessageBox.Show("exportfinish!");
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
}
if(sqlConnection1!=null)
{
sqlConnection1.Close();
sqlConnection1=null;
}
方案三:通过到入Excel的VBAdll,通过VBA接口获取Excel数据到DataSet
OpenFileDialogopenFile=newOpenFileDialog();
openFile.Filter="Excelfiles(*.xls)|*.xls";
ExcelIOexcelio=newExcelIO();
if(openFile.ShowDialog()==DialogResult.OK)
{
if(excelio!=null)
excelio.Close();
excelio=newExcelIO(openFile.FileName);
object[,]range=excelio.GetRange();
excelio.Close();
DataSetds=newDataSet("xlsRange");
intx=range.GetLength(0);
inty=range.GetLength(1);
DataTabledt=newDataTable("xlsTable");
DataRowdr;
DataColumndc;
ds.Tables.Add(dt);
for(intc=1;c<=y;c++)
{
dc=newDataColumn();
dt.Columns.Add(dc);
}
object[]temp=newobject[y];
for(inti=1;i<=x;i++)
{
dr=dt.NewRow();
for(intj=1;j<=y;j++)
{
temp[j-1]=range[i,j];
}
dr.ItemArray=temp;
ds.Tables[0].Rows.Add(dr);
}
dataGrid1.SetDataBinding(ds,"xlsTable");
if(excelio!=null)
excelio.Close();
}
当然还有其他一些方法,如遍历Excel文件中的数据然后构造sql语句,直接利用sql操作Excel文件导入数据库等,这些都是很常见的方法,因此就不再做收录了。最后说明下,以上的方法是我从网上找的源码并做了一定的修改。
‘玖’ excel分组数据如何导入sql
sql的DTS导入导出,数据源选择excel就可以了。很简单
‘拾’ 怎么把excel的数据导入到sql
方法/步骤
1
打开SQL Server Management Studio,按图中的路径进入导入数据界面。
2
导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。
数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。
选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。
再次确认文件路径没有问题,点击下一步。
默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。
选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。点击下一步。
选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。
点击进入下一步。
在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。
可以看到任务执行的过程和进度。
执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT * FROM price$就可以查看已导入的数据内容。