當前位置:首頁 » 編程語言 » excel批量導入sql文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

excel批量導入sql文件

發布時間: 2023-05-04 11:34:33

① C#中如何將Excel中的數據批量導入到sql server

1.本文實現在c#中可高敏橋咐效的將excel數據導入到橋純sqlserver資料庫中,很多人通過循環來拼接sql,這樣做不但容消纖易出錯而且效率低下,最好的辦法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 類來實現。不但速度快,而且代碼簡單,下面測試代碼導入一個6萬多條數據的sheet,包括讀取(全部讀取比較慢)在我的開發環境中只需要10秒左右,而真正的導入過程只需要4.5秒。x0dx0a2.代碼如下:x0dx0ausing System; x0dx0ausing System.Data; x0dx0ausing System.Windows.Forms; x0dx0ausing System.Data.OleDb; x0dx0anamespace WindowsApplication2 x0dx0a{ x0dx0a public partial class Form1 : Form x0dx0a { x0dx0a public Form1() x0dx0a { x0dx0a InitializeComponent(); x0dx0a } x0dx0ax0dx0a private void button1_Click(object sender, EventArgs e) x0dx0a { x0dx0a //測試,將excel中的sheet1導入到sqlserver中 x0dx0a string connString = "server=localhost;uid=sa;pwd=sqlgis;database=master"; x0dx0a System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog(); x0dx0a if (fd.ShowDialog() == DialogResult.OK) x0dx0a { x0dx0a TransferData(fd.FileName, "sheet1", connString); x0dx0a } x0dx0a } x0dx0ax0dx0a public void TransferData(string excelFile, string sheetName, string connectionString) x0dx0a { x0dx0a DataSet ds = new DataSet(); x0dx0a tryx0dx0a { x0dx0a //獲取全部數據 x0dx0a string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 8.0;"; x0dx0a OleDbConnection conn = new OleDbConnection(strConn); x0dx0a conn.Open(); x0dx0a string strExcel = ""; x0dx0a OleDbDataAdapter myCommand = null; x0dx0a strExcel = string.Format("select * from [{0}$]", sheetName); x0dx0a myCommand = new OleDbDataAdapter(strExcel, strConn); x0dx0a myCommand.Fill(ds, sheetName); x0dx0ax0dx0a //如果目標表不存在則創建 x0dx0a string strSql = string.Format("if object_id('{0}') is null create table {0}(", sheetName); x0dx0a foreach (System.Data.DataColumn c in ds.Tables[0].Columns) x0dx0a { x0dx0a strSql += string.Format("[{0}] varchar(255),", c.ColumnName); x0dx0a } x0dx0a strSql = strSql.Trim(',') + ")"; x0dx0ax0dx0a using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)) x0dx0a { x0dx0a sqlconn.Open(); x0dx0a System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand(); x0dx0a command.CommandText = strSql; x0dx0a command.ExecuteNonQuery(); x0dx0a sqlconn.Close(); x0dx0a } x0dx0a //用bcp導入數據 x0dx0a using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)) x0dx0a { x0dx0a bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied); x0dx0a bcp.BatchSize = 100;//每次傳輸的行數 x0dx0a bcp.NotifyAfter = 100;//進度提示的行數 x0dx0a bcp.DestinationTableName = sheetName;//目標表 x0dx0a bcp.WriteToServer(ds.Tables[0]); x0dx0a } x0dx0a } x0dx0a catch (Exception ex) x0dx0a { x0dx0a System.Windows.Forms.MessageBox.Show(ex.Message); x0dx0a }x0dx0a } x0dx0ax0dx0a //進度顯示 x0dx0a void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e) x0dx0a { x0dx0a this.Text = e.RowsCopied.ToString(); x0dx0a this.Update(); x0dx0a }x0dx0a } x0dx0a} x0dx0a3.上面的TransferData基本可以直接使用,如果要考慮周全的話,可以用oledb來獲取excel的表結構,並且加入ColumnMappings來設置對照欄位,這樣效果就完全可以做到和sqlserver的dts相同的效果了。

② 怎麼把excel文件里的數據導入SQL資料庫

導入數據不一定要用OPENSET函數,可以用更簡單的方法,步驟如下:

1、首先雙擊打開sqlserver,右擊需要導入數據的資料庫,如圖所示。

2、點擊任務,再點擊任務中的導入數據選項,打開導入導出數據向導界面。

3、在向導界面點擊下一步,進入下圖界面依次填寫需要的內容:數據源Excel,文件路徑,以及Excel版本,填好後點擊下一步(如果Excel其他版本不行的話,就選擇Excel97-03的,再將Excel保存為相應版本)即可。

4、然後就是目標資料庫設置:目標選擇msslserver,伺服器名稱不用變,身份驗證輸入相應的密碼,資料庫選擇對應的資料庫,設置好後點擊下一步。

5、然後來到圖示界面,直接默認選項即可,點擊下一步。

6、圖示界面,可以自定義目標資料庫(表在資料庫中可以不存在),點擊預覽即可以看到導入之後的表狀態,如圖。

7、上一步完成後再繼續下一步,最後點擊完成,即可導入成功,如圖。

8、最後在資料庫中檢查一下導入的表數據,附上導入的Excel數據為例。

(2)excel批量導入sql文件擴展閱讀:

導入數據也可使用OPENROWSET函數,但使用該函數之前必須先啟用AdHocDistributedQueries服務,因為這個服務不安全所以SqlServer默認是關閉的,系統管理員可以通過使用sp_configure啟用'AdHocDistributedQueries'。

但有一個問題一定要特別注意,由於'AdHocDistributedQueries'這個服務存在著較大的安全隱患,所以切記使用完畢之後一定要關閉。

所以,如果是導入數據建議不要使用OPENROWSET函數,弊大於利。

③ 如何將EXCEL數據導入到SQL SERVER資料庫中

將EXCEL數據導入到SQL SERVER資料庫最便捷的方法就是使用SqlCel。話不多說,直接上圖

SqlCel可以一鍵批量導入Excel。

④ Excel中如何導入SQL Server里的數據

我們使用Excel操作數據的時候,數據不僅可以自己錄入,還可以從SQL Server資料庫中導入。那麼如何導入呢?下面我給大家分享一下。

工具/材料

Excel

  • 01

    首先打開SQL Server資料庫,准備一個要導入的數據表,如下圖所示,數據表中插入一些數據

  • 02

    接下來打開Excel軟體,點擊數據菜單,然後選擇其他來源下面的來自SQL Server選項,如下圖所示

  • 03

    然後會彈出資料庫連接向導界面,在輸入框裡面輸入伺服器名稱,也就是計算機名,如下圖所示

  • 04

    接著我們需要選擇資料庫並選擇要導入數據的表,如下圖所示

  • 05

    然後點擊最底下的身份驗證設置按鈕設置一下身份驗證方式,如下圖所示

  • 06

    在彈出的Excel Services身份驗證設置界面中選擇第一個選項,如下圖所示

  • 07

    接下來就會出現導入內容的具體設置界面了,我們選擇要導入表,並且選擇一個空白單元格位置作為數據的導入位置,如下圖所示

  • 08

    最後點擊確定按鈕,我們就可以看到SQL Server中的數據就導入進Excel里了,如下圖所示

⑤ 請教如何將excle上面的數據批量導入至sql2008資料庫

在查詢分析器里,直接寫 SQL語句:
如果是導入數據到現有表,則採用形式
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
如果是導入數據並新增表,則採用形式
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
SQL2005中直接可以實現導入功能 SQL2008不知道可不可以。 操作過程如下:
第一步:登錄到 SQL Server Management Studio
第二步:在 「對象資源管理器 」中右鍵單擊 「管理 」,在彈出列表中單擊 「導入數據 」
第三步:在 「導入向導 」對話框中單擊 「下一步 」,進入到 「選擇數據源 」對話框,在 「數據源 」列表中選擇 「Microsoft Excel 」,同時選擇相應的 Excel 文檔,完成後單擊 「下一步 」(一定要勾選該對話框中的 「首行包含列名稱 」,因此它是將 Excel文檔中的列標題為資料庫表中的列項標題)
第四步:指定目標資料庫服務,依次單擊 「下一步 」。。。。至到 「完成 」
第五步:重新打到 SQL Server Management Studio,進入到導入的資料庫表,可以發現所導入的 Excel文檔數據。

⑥ 怎樣將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、會看到整個操作的摘要,按 完成 即可

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

⑧ 如何將Excel數據批量導入SQL資料庫

把EXCEL數據導入到SQL資料庫中:

1、在資料庫上點擊右鍵,然後選擇「任務」,選擇「導入數據」,就看到彈出淡入數據的對話框


3、按照操作步驟走下去,最終會生成一個新的表(臨時表B表)。

可以藉助工具,MSSQL表數據導出成Insert語句的工具 即:將查詢出來的這些數據都生成insert into語句。

最終在A表中執行該insert into語句就可以將excel中的數據最終放入資料庫中。

⑨ 如何將Excel表導入現有的SQL SEVER數據表裡面

1、首先准備好Excel表,希望把它導入到SQL Server2012中的QearlTest資料庫中。

⑩ 怎樣將EXCEL數據表導入到SQL中

第一步:登錄到
sql
server
management
studio
第二步:在
「對象資源管理器
」中右鍵單擊
「管理
」,在彈出列表中單擊
「導入數據

第三步:在
「導入向導
」對話框中單擊
「下一步
」,進入到
「選擇數據源
」對話框,在
「數據源
」列表中選擇
「microsoft
excel
」,同時選擇相應的
excel
文檔,完成後單擊
「下一步
」(一定要勾選該對話框中的
「首行包含列名稱
」,因此它是將
excel文檔中的列標題為資料庫表中的列項標題)
第四步:指定目標資料庫服務,依次單擊
「下一步
」。。。。至到
「完成

第五步:重新打到
sql
server
management
studio,進入到導入的資料庫表,可以發現所導入的
excel文檔數據。