『壹』 怎樣把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$就可以查看已導入的數據內容。