excel導入資料庫代碼
1. C#.NET Excel文件數據導入sql Server資料庫完整代碼
在日常的項目中,Excel,Word,txt等格式的數據導入到資料庫中是很常見
這里將分為.net導入Sql Server,Oracle資料庫和WinForm導入Sql Server,Oracle資料庫。
實現的基本思想:
1,先使用FileUpload控制項fuload將Excel文件上傳到伺服器上得某一個文件夾。
2,使用OleDb將已經上傳到伺服器上的Excel文件讀出來,這里將Excel文件當做一個資料庫來讀。在聯系資料庫語句中,Data Source就是該文件在伺服器上得物理路徑
3,將第二步中讀出的數據以DataTable對象返回。
4,遍歷DataTable對象,然後到Sql Server資料庫中查詢,是否存在該條數據。如果存在,可以做更新,或者不做處理;如果不存在,則插入數據。
注意:在遍歷DataTable的時候,可是使用dt.Rows[i]["Name"].ToString();Name為Name列的表頭,所以Excel中列的順序就無關緊要了。當然,前提是你知道Excel里列中各表頭的名字。如果Excel中列的順序固定,即可按下面代碼中的方式進行。
添加的引用:
usingSystem;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingSystem.Text;
usingSystem.Web;
usingSystem.Web.UI;
privateDataTablexsldata()
{
if(fuload.FileName=="")
{
lbmsg.Text="請選擇文件";
returnnull;
}
stringfileExtenSion;
fileExtenSion=Path.GetExtension(fuload.FileName);
if(fileExtenSion.ToLower()!=".xls"&&fileExtenSion.ToLower()!=".xlsx")
{
lbmsg.Text="上傳的文件格式不正確";
returnnull;
}
try
{
stringFileName="App_Data/"+Path.GetFileName(fuload.FileName);
if(File.Exists(Server.MapPath(FileName)))
{
File.Delete(Server.MapPath(FileName));
}
fuload.SaveAs(Server.MapPath(FileName));
//HDR=Yes,這代表第一行是標題,不做為數據使用,如果用HDR=NO,則表示第一行不是標題,做為數據來使用。系統默認的是YES
stringconnstr2003="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(FileName)+";ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1;'";
stringconnstr2007="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+Server.MapPath(FileName)+";ExtendedProperties="Excel12.0;HDR=YES"";
OleDbConnectionconn;
if(fileExtenSion.ToLower()==".xls")
{
conn=newOleDbConnection(connstr2003);
}
else
{
conn=newOleDbConnection(connstr2007);
}
conn.Open();
stringsql="select*from[Sheet1$]";
OleDbCommandcmd=newOleDbCommand(sql,conn);
DataTabledt=newDataTable();
OleDbDataReadersdr=cmd.ExecuteReader();
dt.Load(sdr);
sdr.Close();
conn.Close();
//刪除伺服器里上傳的文件
if(File.Exists(Server.MapPath(FileName)))
{
File.Delete(Server.MapPath(FileName));
}
returndt;
}
catch(Exceptione)
{
returnnull;
}
}
protectedvoidBtn_Export_Excel_To_DB_Click(objectsender,EventArgse)
{
try{
DataTabledt=xsldata();
//dataGridView2.DataSource=ds.Tables[0];
interrorcount=0;//記錄錯誤信息條數
intinsertcount=0;//記錄插入成功條數
intupdatecount=0;//記錄更新信息條數
stringstrcon="server=localhost;database=database1;uid=sa;pwd=sa";
SqlConnectionconn=newSqlConnection(strcon);//鏈接資料庫
conn.Open();
for(inti=0;i<dt.Rows.Count;i++)
{
stringName=dt.Rows[i][0].ToString();//dt.Rows[i]["Name"].ToString();"Name"即為Excel中Name列的表頭
stringSex=dt.Rows[i][1].ToString();
intAge=Convert.ToInt32(dt.Rows[i][2].ToString());
stringAddress=dt.Rows[i][3].ToString();
if(Name!=""&&Sex!=""&&Age!=0&&Address!="")
{
SqlCommandselectcmd=newSqlCommand("selectcount(*)fromuserswhereName='"+Name+"'andSex='"+Sex+"'andAge='"+Age+"'andAddress="+Address,conn);
intcount=Convert.ToInt32(selectcmd.ExecuteScalar());
if(count>0)
{
updatecount++;
}
else
{
SqlCommandinsertcmd=newSqlCommand("insertintousers(Name,Sex,Age,Address)values('"+Name+"','"+Sex+"',"+Age+",'"+Address+"')",conn);
insertcmd.ExecuteNonQuery();
insertcount++;
}
}
else
{
errorcount++;
}
}
Response.Write((insertcount+"條數據導入成功!"+updatecount+"條數據重復!"+errorcount+"條數據部分信息為空沒有導入!"));
}
catch(Exceptionex)
{
}
}
2. 怎麼把Excel數據導入到資料庫
這個網上有很多戚猜迅,找找吧。x0dx0a一般都是先獲取execl的兆鍵數據導入到dataset中,再把dataset中的資料庫insert到資料庫(這部分應該不用說了吧)。x0dx0a需要注意一點的是:execl2003和2007以上的版本高此所用的引擎是不一樣的。如下列。x0dx0a//導入(stringfileName)x0dx0a{x0dx0a//stringfileName="d:\\123.xls";x0dx0astringexcelStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+fileName+";ExtendedProperties='Excel8.0;HDR=YES;IMEX=1'";//execl2003x0dx0a//stringexcelStr="Provider=Microsoft.Ace.OleDB.12.0;DataSource="+fileName+";ExtendedProperties='Excel12.0;HDR=YES;IMEX=1'";//execl2007以上(需要裝個AccessDatabaseEngine引擎,網上找找)x0dx0aDataSetds=newDataSet();x0dx0ausing(System.Data.OleDb.OleDbConnectioncn=newOleDbConnection(excelStr))x0dx0a{x0dx0ausing(OleDbDataAdapterdr=newOleDbDataAdapter("SELECT*FROM[sheet1$]",excelStr))x0dx0a{x0dx0adr.Fill(ds);x0dx0a}x0dx0a}x0dx0a//插入到資料庫x0dx0a}
3. 將excel表導入資料庫的方法步驟
在 Excel 中錄入好數據以後,可能會有導入資料庫的需求,這個時候就需要利用一些技巧導入。接下來是我為大家帶來的如何將excel表導入資料庫的 方法 ,希望對你有用。
將excel表導入資料庫的方法Excel導入資料庫步驟1:對於把大量數據存放到資料庫中,最好是用圖形化資料庫管理工具,可是如果沒有了工具,只能執行命令的話這會是很費時間的事。那我們只能對數據進行組合,把數據組成insert語句然後在命令行中批量直行即可。
Excel導入資料庫步驟2:我們對下面數據進行組合,這用到excel中的一個功能。
在excel中有個fx的輸入框,在這里把組好的字元串填上去就好了。
註:字元串1 & A2 &字元串2 & ...
A2可以直接輸入,也可以用滑鼠點對應的單元格。
Excel導入資料庫步驟3:每個字元串之間用 & 符號進行連接。下面是第一條連接字元串
="insert into tavern values('"&A2&"','"&B2&"','"&C2&"','"&D2&"');"
寫好後按回車鍵Enter就能組合出對應的字元串了。
insert into tavern values('jw_agi','曙光','0','1');
Excel導入資料庫步驟4:組好第一行的字元串後,把滑鼠放到單元格右下方,出現加粗的十字,單擊按下(別松開),一直往下拉,直到最後一行再放開就行了。
5這樣我們就把insert語句都整理好了,接下來就是大家把這些語句批量執行就可以了。
>>>下一頁更多精彩“將EXCEL表格數據導入進CAD中的方法”4. 怎樣將Excel文件導入資料庫(在JSP環境下java代碼)
我只給你說下第二步怎麼樣吧,其他的你自己應該可以解決的。
通過使用第三方包jxl.jar,我以前導過數據,也是解析Excel,將Excel中的數據導入資料庫中,這個包很好下,如果找不到可以留下郵箱
//程序說明: 要導入jxl.jar到Classpath中。
import jxl.*;
import java.io.*;
import jxl.write.*;
/**
* <p>java讀取Excel表格,拷貼心、更新Excel工作薄 </p>
*/
public class Test1 {
public static void main(String[] args) {
jxl.Workbook rwb = null;
try{
//構建Workbook對象 只讀Workbook對象
//直接從本地文件創建Workbook
//從輸入流創建Workbook
InputStream is = new FileInputStream("D://Book1.xls");
rwb = Workbook.getWorkbook(is);
//Sheet(術語:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下標是從0開始的
//獲取第一張Sheet表
Sheet rs = rwb.getSheet(0);
//獲取Sheet表中所包含的總列數
int rsColumns = rs.getColumns();
//獲取Sheet表中所包含的總行數
int rsRows = rs.getRows();
//獲取指這下單元格的對象引用
for(int i=0;i<rsRows;i++){
for(int j=0;j<rsColumns;j++){
Cell cell = rs.getCell(j,i);
System.out.print(cell.getContents()+" ");
}
System.out.println();
}
//利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("D://Book2.xls"),rwb);
//讀取第一張工作表
jxl.write.WritableSheet ws = wwb.getSheet(0);
//獲取第一個單元格對象
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
//決斷單元格的類型,做出相應的轉化
if (wc.getType() == CellType.LABEL) {
Label l = (Label) wc;
l.setString("The value has been modified.");
}
//寫入Excel對象
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
finally{
//操作完成時,關閉對象,翻譯佔用的內存空間
rwb.close();
}
}
}
5. 怎麼把excel的數據存入資料庫里 代碼怎麼寫
1.使用php
excel
parser
pro軟體,但是這個軟體為收費軟體;
2.可將excel表保存為csv格式,然後通過phpmyadmin或者sqlyog導入,sqlyog導入的方法為:
·將excel表另存為csv形式;
·打開sqlyog,對要導入的表格右擊,點擊「導入」-「導入使用載入本地csv數據」;
·在彈出的對話框中,點擊「改變..」,把選擇「填寫excel友弊備好值」,點擊確定;
·在「從文件導入」中選擇要導入的csv文件路徑,點擊「導入」即可如猛導入數據到表上;
3.一個比較笨的手工方法,就是先利用excel生成sql語句,然後再到mysql中運行,這種方法適用於excel表格導入到各類sql資料庫:
·假設你的表格有a、b、c三列數據,希望導入到你的資料庫中表格渣卜橋tablename,對應的欄位分別是col1、col2、col3
·在你的表格中增加一列,利用excel的公式自動生成sql語句,具體方法如下:
1)增加一列(假設是d列)
2)在第一行的d列,就是d1中輸入公式:
=concatenate("insert
into
tablename
(col1,col2,col3)
values
(",a1,",",b1,",",c1,");")
3)此時d1已經生成了如下的sql語句:
insert
into
table
(col1,col2,col3)
values
('a','11','33');
4)將d1的公式復制到所有行的d列(就是用滑鼠點住d1單元格的右下角一直拖拽下去啦)
5)此時d列已經生成了所有的sql語句
6)把d列復制到一個純文本文件中,假設為sql.txt
·把sql.txt放到資料庫中運行即可,你可以用命令行導入,也可以用phpadmin運行。
6. 如何用命令將Excel導入資料庫中
用SQL命令把Excel中的數據導入word中去:
SQL SERVER 和EXCEL的數據導入導出
1、在SQL SERVER里查詢Excel數據:
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是個查詢的示例,它通過用於 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。
SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
2、將Excel的數據導入SQL server :
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
實例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
3、將SQL SERVER中查詢到的數據導成一個Excel文件
T-SQL代碼:
EXEC master..xp_cmdshell 'bcp 庫名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
參數:S 是SQL伺服器名;U是用戶;P是密碼
說明:還可以導出文本文件等多種格式
實例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中應用ADO導出EXCEL文件代碼:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 庫名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
4、在SQL SERVER里往Excel插入數據:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)
T-SQL代碼:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]
(bestand, prokt) VALUES (20, 'Test')建議樓主可以在淘寶買個excel教程,以備不時之需,推薦店鋪,冬之佳網路科技,我在裡面看過,很全價格低還會不定時更新教程,望採納答案哦
7. java將excel文件中的數據導入到mySql資料庫中 完整代碼
//根據excel文件,生成輸入流
FileInputStream fis = new FileInputStream(new File("D:\\aa.xlsx"));
//用輸入流生成poi 對象,以讀取excel內容
//excel2007以上用XSSFWorkbook,2003用HSSFWorkbook
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);//取第一個sheet
String str1 = sheet.getRow(0).getCell(0).getStringCellValue();//取第一行第一列字元值
//getDateCellValue();日期類型 getNumericCellValue()數字類型;getHyperlink()超鏈接 等等()
//接下來 選擇性插入資料庫吧,明白?
8. 用javascript怎麼實現把excel中的數據批量導入到資料庫表中
用javascript怎麼實現把excel中的數據批量導入到資料庫表中
利用jquery里的ocupload這個js組件,步驟和實現文件上傳一樣,將你要導入的excel表格進行上傳到服務端,然後在工程里導入apache的poi這poi-ooxml以及poi-schemas這三個jar包,接受到文件對瞎磨象後,利用裡面的HSSWorkBook這個對象來解析excel里的每行數據,通過對應的數據類型對象添加到資料庫里即可
怎麼把excel中的數據批量導入到mysql數據中
1.將選中的數據快兒拷貝到一個TXT文本文件中(記得把後面的空格消掉。。否則導入資料庫後洞核會有對應的空行),假如存到「D:data.txt」這個位置里。
2.根據要導入的數據快兒建納神掘立MySql資料庫和表,然後進入命令提示符里使用命令
load data local infile 'D:/data.txt' into table exceltomysql fields terminated by ' '
注意:盤符我使用的「/」才成功,否則提示找不到文件 下面文章中是用的「」!
進行導入操作
手動進行Excel數據和MySql數據轉換
最快的方法是把EXCEL的數據以CSV的格式導出,到ACCESS導入CSV的那個文件,然後再用ACCESS導出DBF的格式,mySQL可以直接支持和讀取DBF格式的資料庫文件。
EZDML中的資料庫表,怎麼導入到excel中啊?急!
1、在EZDML中打開表,全選,復制,在EXCEL中新建表,粘貼。
2、在EZDML中導出數據,保存為EXCEL文件。
3、在EZDML中導出數據,保存為ACCESS文件,然後在ACCESS資料庫中打開表,全選,復制,在EXCEL中新建表,粘貼。
4、在EZDML中導出數據,保存為TXT、XML等通用文件,然後在ACCESS中導入為數據表,再打開表,全選,復制,在EXCEL中新建表,粘貼。
急!delphi中怎麼將excel的數據批量導入到SQLSever資料庫呢?
我的空間中記載了一種方法,是我以前在工作時使用的,你可以借鑒下:
:hi../yueyun889/blog/item/fdd23d38a952b624b9998f5a.
怎樣把資料庫表中內容導入到EXCEL中
你是說SQL server的吧。。。
把查出來的記錄全部選中,右鍵選保存,保存為cvs的文件格式,再打開cvs的文件,重新保存成xls格式的就可。
如何用sqlldr將文本文件中的數據導入到資料庫表中
1、啟動SQL企業管理器,選中 表格:1、點擊滑鼠右鍵 2、所以任務 3、導入數據
2、選擇數據源
3、選擇文件路徑
4、按txt文本格式,選擇相應的分隔符和間距,就可以了。
如何實現Excel數據批量導入到遠程SQLServer資料庫
基於Visual Basic編程語言,舉例說明利用VB實現循環將本地Excel數據批量導入到遠程的SQL Server資料庫的方法。
怎麼把excel中的數據批量導入到word中的表格中
1、打開文字文檔以後,先做好表格,接著找到文檔中工具欄的「工具」按鈕。
2、點擊之後,就會彈出一個命令菜單,在其中找到「郵件合並工具欄」,點擊「郵件合並工具欄」以後就會出現如下圖2的一個工具欄了。
3、在這個工具欄中找到如下圖的圖標,點擊打開數據源。
4、接著就會出現一個選擇框,選擇好需要導入的數據源excel文件,點擊確定。
5、接著滑鼠如下圖點擊要導入數據文檔表格中的單元格,讓游標在這個單元格總閃動,然後點擊第二幅圖上的圖標「插入合並域」。
6、接著選擇要輸入的項目,點擊確定,就能看到第二幅圖中單元格里出現了《姓名》,出生日期和性別也可以用同樣的方法輸入。
7、然後點擊如下圖」合並到新文檔「,在合並到新文檔設置中選擇要導入的數據起始行和結束行,點擊確定。
8
8、接著你就會發現excel中的數據全部導入到了文檔的表格里。
9. 怎麼把excel文件里的數據導入SQL資料庫
導入數據不一定要用OPENSET函數,可以用更簡單的方法,步驟如下:
1、首先雙擊打開sqlserver,右擊需要導入數據的資料庫,如圖所示。
2、點擊任務,再點擊任務中的導入數據選項,打開導入導出數據向導界面。
3、在向導界面點擊下一步,進入下圖界面依次填寫需要的內容:數據源Excel,文件路徑,以及Excel版本,填好後點擊下一步(如果Excel其他版本不行的話,就選擇Excel97-03的,再將Excel保存為相應版本)即可。
4、然後就是目標資料庫設置:目標選擇msslserver,伺服器名稱不用變,身份驗證輸入相應的密碼,資料庫選擇對應的資料庫,設置好後點擊下一步。
5、然後來到圖示界面,直接默認選項即可,點擊下一步。
6、圖示界面,可以自定義目標資料庫(表在資料庫中可以不存在),點擊預覽即可以看到導入之後的表狀態,如圖。
7、上一步完成後再繼續下一步,最後點擊完成,即可導入成功,如圖。
8、最後在資料庫中檢查一下導入的表數據,附上導入的Excel數據為例。
(9)excel導入資料庫代碼擴展閱讀:
導入數據也可使用OPENROWSET函數,但使用該函數之前必須先啟用AdHocDistributedQueries服務,因為這個服務不安全所以SqlServer默認是關閉的,系統管理員可以通過使用sp_configure啟用'AdHocDistributedQueries'。
但有一個問題一定要特別注意,由於'AdHocDistributedQueries'這個服務存在著較大的安全隱患,所以切記使用完畢之後一定要關閉。
所以,如果是導入數據建議不要使用OPENROWSET函數,弊大於利。
10. 求一個C# Excel導入資料庫的源碼
環境:c#.2005+Access+ Sql
一、把DataTable插入資料庫
public static void DataTableToDB()
{
string _strExcelFileName = @"D:\example.xls";
DataTable dtExcel = ExcelToDataTable(_strExcelFileName,"Sheet1");
for (int i = 0; i < dtExcel.Rows.Count; i++)
{
InsertDataToAccess(dtExcel.Rows[i][0].ToString(), float.Parse(dtExcel.Rows[i][1].ToString()));
}
}
二、把Excel數據讀入DataTable
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" +"Extended Properties=Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[strSheetName];
}
三、向Access資料庫表插入數據
public static void InsertDataToAccess(string _strPara,float _fPara)
{
OleDbConnection oleDbConn = new OleDbConnection();
oleDbConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ExcelData.mdb;User Id=admin;Password=;";
oleDbConn.Open();
string strInsertString = "INSERT INTO tb_excelData (strCollumn1,fCollumn2) VALUES (@strCollumn1,@fCollumn2)";
OleDbCommand oComm = new OleDbCommand(strInsertString, oleDbConn);
oComm.Parameters.Add("@strCollumn1", OleDbType.Char , 50);
oComm.Parameters["@strCollumn1"].Value = _strPara;
oComm.Parameters.Add("@fCollumn2", OleDbType.Double);
oComm.Parameters["@fCollumn2"].Value = _fPara;
ocomm.ExecuteNonQuery();
oleDbConn.Close();
}