c將excel導入資料庫
第一步:建立資料庫和數據表(按照自己的Excel數據設立欄位)。
[sql] view plain print?
CREATE DATABASE php_excel;
USE php_excel;
CREATE TABLE IF NOT EXISTS php_excel(
id int(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gid varchar(20) NOT NULL,
stu_no varchar(20) NOT NULL,
name varchar(45) NOT NULL,
age int(4) NOT NULL
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
第二步:前台index.php文件。
[html] view plain print?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>phpexcel導入excel數據到MYSQL資料庫</title>
</head>
<body>
<form name="frm1" action="insertdb.php" method="post" enctype="multipart/form-data">
<input name="filename" type="file" />
<input name="submit" type="submit" value="import" />
</form>
</body>
</html>
第三步:向資料庫插入數據的insertdb.php文件。
[php] view plain print?
session_start();
header("Content-type:text/html;charset:utf-8");
//全局變數
$succ_result=0;
$error_result=0;
$file=$_FILES['filename'];
$max_size="2000000"; //最大文件限制(單位:byte)
$fname=$file['name'];
$ftype=strtolower(substr(strrchr($fname,'.'),1));
//文件格式
$uploadfile=$file['tmp_name'];
if($_SERVER['REQUEST_METHOD']=='POST'){
if(is_uploaded_file($uploadfile)){
if($file['size']>$max_size){
echo "Import file is too large";
exit;
}
if($ftype!='xls'){
echo "Import file type is error";
exit;
}
}else{
echo "The file is not empty!";
exit;
}
}
require("./conn.php"); //連接mysql資料庫
//調用phpexcel類庫
require_once 'PHPExcel.php';
require_once 'PHPExcel\IOFactory.php';
require_once 'PHPExcel\Reader\Excel5.php';
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader->load($uploadfile);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumn = $sheet->getHighestColumn(); // 取得總列數
$arr_result=array();
$strs=array();
for($j=2;$j<=$highestRow;$j++)
{
unset($arr_result);
unset($strs);
for($k='A';$k<= $highestColumn;$k++)
{
//讀取單元格
$arr_result .= $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().',';
}
$strs=explode(",",$arr_result);
$sql="insert into php_excel(gid,stu_no,name,age) values ($strs[0],'$strs[1]','$strs[2]',$strs[3])";
echo $sql."<br/>";
mysql_query("set names utf8");
$result=mysql_query($sql) or die("執行錯誤");
$insert_num=mysql_affected_rows();
if($insert_num>0){
$succ_result+=1;
}else{
$error_result+=1;
}
}
echo "插入成功".$succ_result."條數據!!!<br>";
echo "插入失敗".$error_result."條數據!!!";
其中conn.php代碼如下:
[php] view plain print?
$mysql=mysql_connect("localhost","root","") or die("資料庫連接失敗!");
mysql_select_db("php_excel",$mysql);
mysql_query("set names utf8");
我的導入效果如下:
至此,從Excel文件讀取數據批量導入到Mysql資料庫完成。
㈡ C# 如何將EXCEL插入到資料庫
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Data;
usingSystem.Collections;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
usingSystem.Data.Common;
usingSystem.Data.SqlClient;
publicpartialclassExcel導入_Default:System.Web.UI.Page
{
privatestaticstringfilename;
privatestaticstringsavePath;
privatestaticDataSetds;//要插入的數據
privatestaticDataTabledt;
protectedvoidPage_Load(objectsender,EventArgse)
{
}
//上傳文件到指定的伺服器
protectedvoidButton1_Click1(objectsender,EventArgse)
{
filename=this.fileUploadExcel.FileName;
//savePath必須包含表名在內的所有路徑名
savePath=@"G:項目組文件項目.net學習資料工程HealthExcel導入Files"+this.fileUploadExcel.FileName;//上傳伺服器文件的存儲,存在當前新建的文件夾
this.fileUploadExcel.SaveAs(savePath);
Booleanjudge_excel=Judge_Excel();
if(!judge_excel)
{
MessageBox.Show("上傳的不是excel文件","標題",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
return;
}
else
MessageBox.Show("上傳文件成功","標題",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
//測試,將excel中的sheet1導入到sqlserver中
//stringconnString="server=localhost;uid=sa;pwd=sqlgis;database=master";
//System.Windows.Forms.OpenFileDialogfd=newOpenFileDialog();
//if(fd.ShowDialog()==DialogResult.OK)
//{
////TransferData(fd.FileName,"sheet1",connString);
//}
}
//判斷文件是否是excel文件函數
protectedBooleanJudge_Excel()
{
stringfileExtend=System.IO.Path.GetExtension(this.fileUploadExcel.FileName);
if(fileExtend==".xlsx"||fileExtend==".xls")
returntrue;
else
returnfalse;
}
//獲取excel數據按鈕的觸發,
protectedvoidButton2_Click(objectsender,EventArgse)
{
ExcelToDataSet();
MessageBox.Show("獲取數據成功","標題",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
}
//從excel表中獲取數據的函數
publicvoidExcelToDataSet()
{
stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+savePath+";ExtendedProperties="Excel8.0;HDR=Yes;IMEX=1"";
OleDbConnectionconn=newOleDbConnection(strConn);//連接excel
if(conn.State.ToString()=="Open")
{
conn.Close();
}
conn.Open();//外部表不是預期格式,不兼容2010的excel表結構
strings=conn.State.ToString();
OleDbDataAdaptermyCommand=null;
ds=null;
/*DataTableyTable=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newObject[]{null,null,null,"TABLE"});//獲取表的框架,幾行幾列
stringtableName=yTable.Rows[0]["filename"].ToString();//表示的是幾行幾列
stringstrSel="select*from["+filename+"]";//xls*/
stringstrExcel="select*from[sheet1$]";//如果有多個sheet表時可以選擇是第幾張sheet表
myCommand=newOleDbDataAdapter(strExcel,conn);//用strExcel初始化myCommand,查看myCommand裡面的表的數據??
ds=newDataSet();
myCommand.Fill(ds);//把表中的數據存放在ds(dataSet)
conn.Close();
try
{
dt=ds.Tables[0];
this.dataGridView1.DataSource=dt;
}
catch(Exceptionerr)
{
MessageBox.Show("操作失敗!"+err.ToString());
}
}
//excel導入資料庫sql的按鈕觸發
protectedvoidButton3_Click(objectsender,EventArgse)
{
//stringpath=@"D:資料庫SQLServerMSSQL10_50.MSSQLSERVERMSSQLDATATest.mdf";
stringconnString="server=localhost;uid=sa;pwd=1234;database=Test";//連接資料庫的路徑方法
//StringconnString=@"server=localhost;uid=sa;pwd=1234;database=D:資料庫SQLServerMSSQL10_50.MSSQLSERVERMSSQLDATATest.mdf";
SqlConnectionconn=newSqlConnection(connString);
conn.Open();
DataRowdr=null;
intC_Count=dt.Columns.Count;//獲取列數
for(inti=0;i<dt.Rows.Count;i++)//記錄表中的行數,循環插入
{
dr=dt.Rows[i];
insertToSql(dr,C_Count,conn);
}
conn.Close();
if(dataGridView1.Rows.Count>0)//把資料庫表中的數據顯示到表中,可判斷有沒有數據
{
MessageBox.Show("導入成功!");
}
else
{
MessageBox.Show("沒有數據!");
}
}
//使用bcp,不容易出錯而且效率高
/*try
{
using(System.Data.SqlClient.SqlBulkCopybcp=newSystem.Data.SqlClient.SqlBulkCopy(connString))
{
bcp.SqlRowsCopied+=newSystem.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize=100;//每次傳輸的行數
bcp.NotifyAfter=100;//進度提示的行數
bcp.DestinationTableName=savePath;//目標表
bcp.WriteToServer(ds.Tables[0]);
}
}
catch
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}*/
//插入資料庫的函數
protectedvoidinsertToSql(DataRowdr,intcolumn_count,SqlConnectionconn)
{
//excel表中的列名和資料庫中的列名一定要對應
stringname=dr[0].ToString();//需要把內個列都列出來
stringage=dr[1].ToString();
stringsex=dr[2].ToString();
//當資料庫中有多個表時,怎麼分辨插入的表
stringsql="insertinto客戶values('"+name+"','"+age+"','"+sex+"')";
SqlCommandcmd=newSqlCommand(sql,conn);
cmd.ExecuteNonQuery();
}
//從excel表中獲取數據並存在
//protectedvoidImportFromExcel()
//{
//stringexecelConnectionStr=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=filename;
//ExtendedProperties=""Excel8.0;HDR=YES;IMEX=1""";//表第一行是標題,不做為數據使用,Excel檔案只能用來做「讀取」用途。
//ds=newDataSet();
//stringconnString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="
//+savePath+";ExtendedProperties="Excel8.0;HDR=Yes;IMEX=1"";
//DataTabletable=OleDbHelper.GetExcelTables(connString);
//if(table==null||table.Rows.Count<=0)
//{
//return;
//}
//foreach(DataRowdrintable.Rows)
//{
//stringcmdText="select*from["+dr["TABLE_NAME"].ToString()+"]";
//DataTabledt=OleDbHelper.FillDataTable(connString,cmdText);
//dt.TableName=dr["TABLE_NAME"].ToString();
//ds.Tables.Add(dt);
//}
//}
}
㈢ 如何將excel表格的數據導入到mysql數據中去
步驟如下:
1,首,需要在mysql管理工具上面新建一個表,也可以用mysql命令創建,表建立完成之後,你需要將表中的欄位名字告訴給填寫excel表的人員.
2,打開excel表,按照程序提供的欄位填寫相應的數據.此時注意下面幾點:名字,比如用紅色標示出來了)需要跟程序提供的一樣,其他的描述,表頭可以不寫都行.
3,使用的mysql管理工具是Navicat
for
MySQL,打開工具,選擇表所在的資料庫,然後點擊資料庫名字,右鍵數據,出來下拉菜單選擇import
wizard
,有漢化版本的更明確.彈出一個選擇界面,我們選擇excel
file文件,
4,點擊next(下一步),選擇自己對應的excel文件就行,然後再下面選在我們的文件內容在哪一個sheet中,也就是你的內容寫在excel什麼地方,這點需要注意,也是關鍵的地方,我的內容在sheet3中,所以我選擇sheet3
,
5,
點擊next
(此步驟也是關鍵步驟),需要注意2點:
1:filed
name
row
就是你的欄位所在excel中的位置,也就是第幾行(簡單辦法,一般就是英文對應的那一列).2:first
data
row(從哪一行開始執行),數據從哪一行開始呢,我這里選擇的是3,4.
6,點擊next
選擇
target
table
目標對應的資料庫,選擇你要導入到哪個資料庫中表中.
7,如果到上面一步沒有問題的話,我們默認next到最後
就行了.然後打開表就能看到數據跟excel表中的一樣.
㈣ C#實現把指定excel表數據導入sqlserver資料庫
--如果導入數據並生成表
select * into 表 from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
===
--將某個目錄上的Excel表,導入到資料庫中
--將所有的Excel文件放到一個目錄中,假設為c:\test\,然後用下面的方法來做
create table #t(fname varchar(260),depth int,isf bit)
insert into #t exec master..xp_dirtree 'c:\test',1,1
declare tb cursor for select fn='c:\test'+fname from #t
where isf=1 and fname like '%.xls' --取.xls文件(EXCEL)
declare @fn varchar(8000)
open tb
fetch next from tb into @fn
while @@fetch_status=0
begin
--下面是查詢語句,需要根據你的情況改為插入語句
--插入已有的表用:insert into 表 selct * from ...
--創建表用:select * into 表 from ...
set @fn='select * from
OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES;DATABASE='+@fn+''',全部客戶$)'
exec(@fn)
fetch next from tb into @fn
end
close tb
deallocate tb
drop table #t
㈤ 怎麼將excel中的數據導入資料庫
方法如下:
1、打開要導入的Excel文件,觀察第一列是為欄位還是數據。
㈥ excel表格如何導入資料庫中
一.使用php
excel
parser
pro軟體,但是這個軟體為收費軟體;
二.可將excel表保存為csv格式,然後通過phpmyadmin或者sqlyog導入,sqlyog導入的方法為:
·將excel表另存為csv形式;
·打開sqlyog,對要導入的表格右擊,點擊「導入」-「導入使用載入本地csv數據」;
·在彈出的對話框中,點擊「改變..」,把選擇「填寫excel友好值」,點擊確定;
·在「從文件導入」中選擇要導入的csv文件路徑,點擊「導入」即可導入數據到表上;
三.一個比較笨的手工方法,就是先利用excel生成sql語句,然後再到mysql中運行,這種方法適用於excel表格導入到各類sql資料庫:
·假設你的表格有a、b、c三列數據,希望導入到你的資料庫中表格tablename,對應的欄位分別是col一、col二、col三
·在你的表格中增加一列,利用excel的公式自動生成sql語句,具體方法如下:
一)增加一列(假設是d列)
二)在第一行的d列,就是d一中輸入公式:
=concatenate("insert
into
tablename
(col一,col二,col三)
values
(",a一,",",b一,",",c一,");")
三)此時d一已經生成了如下的sql語句:
insert
into
table
(col一,col二,col三)
values
('a','一一','三三');
四)將d一的公式復制到所有行的d列(就是用滑鼠點住d一單元格的右下角一直拖拽下去啦)
5)此時d列已經生成了所有的sql語句
陸)把d列復制到一個純文本文件中,假設為sql.txt
·把sql.txt放到資料庫中運行即可,你可以用命令行導入,也可以用phpadmin運行
㈦ 如何將excel表導入資料庫的方法
首先我們肯定有一個excel的文件,文件中有大量的數據,每一列代表著不同的欄位。
我們首先建立一個資料庫,然後在庫中建立表,表的每個欄位對應excel中的每一列。
?
一、假如excel中有四列數據,希望導入到資料庫中
mytable
中,對應的欄位分別為field1,field2,field3,field4.
二、在excel表格中增加一列(?excel應該是e列),利用excel的公式自動生成sql語句(這個很重要,別寫錯了),具體方法
如下?:
1、增加一列(excel應該是e列,因為我們原有4列數據,分別為a\b\c\d列)
2、在第一行(這一行必須為有效數據行否則出錯)的e列,就是e1中輸入公式=concatenate("insert
into
table
(field1,field2,field3,field4)
values
('",a1,"','",b1,"','",c1,"','",d1,"');")
3、此時e1已經生成如下的sql語句:
insert
into
mytable
(field1,field2,field3、field4)
values
('a1中
的數據','b1','c1','d1');
4、將e1的公式復制到所有行的e列,(就是用滑鼠點住e1單元格的右下角,一直拖拽下去,到最後一行數據)
5、此時e列已經生成了所有的sql語句
6、選中e列把e列數據復制到一個純文本文件中,命名為
例如:excel.txt
三、把excel.txt
放到資料庫中運行即可,可通過命令行導入
source
f:\excel.txt
㈧ 把Excel工作表中數據導入資料庫
這是第二次了,市場部那邊又來要求改數據。他們要改的是資料庫某張表中類似商品價格等的數據,需要改的地方又多,我們上次是靠新來的兄弟一個個給Update進去的,這次老大去教了他們Update語句,把煩人的皮球踢給他們了。但這樣一個個更新很明顯不是辦法,我想通過excel直接把數據導入資料庫應該是可行的吧,就開始找方法了。
我想至少有這樣兩種比較容易實現的方法:
1、直接用Sql語句查詢
2、先用excle中的數據生成xml文件,再把xml導入資料庫
第一種方法(方法二以後再試),找到聯機叢書里實現此功能的Sql語句如下:
SELECT* FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0', 'DataSource="c:Financeaccount.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')…xactions
語句是有了,但我還是試了很久,因為各個參數具體該怎麼設置它沒有說。Data Source就是excel文件的路徑,這個簡單;UserId、Password和Extended properties這三個屬性我改成了各種各樣的與本機有關的用戶名、密碼以及excel版本都不對,最後用上面例子里的值“User ID=Admin;Password=;Extended properties=Excel 5.0”才成功了,暈啊;最後個“xactions”更是查了很多資料,其實就僅僅是excel文件里所選的工作表名而已,怪我對excel不夠熟悉了,另外注意默認的Sheet1要寫成[Sheet1$]
最後,看看我成功的測試
資料庫里建好一個表testTable_1,有5個欄位id, name, date, money, content,C盤下book1.xls文件的sheet1工作表裡寫好對應的數據並設好數據類型,執行如下插入語句:
insertintotestTable_1([name],[date],[money],[content]) Select[姓名],[日期],[金額],[內容] FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0', 'DataSource="C:Book1.xls"; UserID=Admin;Password=;Extendedproperties=Excel5.0')…[Sheet1$]
select里的列名我一開始用*代替,但發現輸出順序與我預期的不同,是“金額、內容、日期、姓名”,不知道具體有什麼規律,就老老實實寫名字了。操作成功
回過頭來看看市場部的要求,假設在我這張表裡實現,可以先判斷如excel里存在與記錄相同的name欄位(name要唯一非空)時就刪除記錄,之後再插入,這樣簡單,但自增的id欄位會因為插入而改變,那是不行的了。可行的方法是先讀出excel里全部記錄,然後用游標一條條分析,如果存在這個name就更新否則就插入。OK,下次就不用讓他們再對著文檔一條條Update了
㈨ 怎樣把EXCEL表導入access資料庫
1、首先准備好一個要導入Access的Excel文件:
(9)c將excel導入資料庫擴展閱讀
Access的用途體現在兩個方面:
一、用來進行數據分析: access有強大的數據處理、統計分析能力,利用access的查詢功能,可以方便地進行各類匯總、平均等統計。並可靈活設置統計的條件。
比如在統計分析上萬條記錄、十幾萬條記錄及以上的數據時速度快且操作方便,這一點是Excel無法與之相比的。 這一點體現在:會用access,提高了工作效率和工作能力。
二、用來開發軟體: access用來開發軟體,比如生產管理、銷售管理、庫存管理等各類企業管理軟體,其最大的優點是:易學!非計算機專業的人員,也能學會。
低成本地滿足了那些從事企業管理工作的人員的管理需要,通過軟體來規范同事、下屬的行為,推行其管理思想。(VB、.net、 C語言等開發工具對於非計算機專業人員來說太難了,而access則很容易)。
這一點體現在:實現了管理人員(非計算機專業畢業)開發出軟體的「夢想」,從而轉型為「懂管理+會編程」的復合型人才。
另外,在開發一些小型網站WEB應用程序時,用來存儲數據。例如ASP+Access。這些應用程序都利用ASP技術在InternetInformation Services運行。比較復雜的WEB應用程序則使用PHP/MySQL或者ASP/Microsoft SQL Server。
ACCESS的用途更多,體現在很多方面:
表格模板。 只需鍵入需要跟蹤的內容,Access 便會使用表格模板提供能夠完成相關任務的應用程序。
Access 可處理欄位、關系和規則的復雜計算,以便您能夠集中精力處理項目。 您將擁有一個全新的應用程序,其中包含能夠立即啟動並運行的自然 UI。
創建和運行舊資料庫。 盡情享用對您的現有桌面資料庫 (ACCDB/MDB) 的支持。
㈩ 如何用命令將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教程,以備不時之需,推薦店鋪,冬之佳網路科技,我在裡面看過,很全價格低還會不定時更新教程,望採納答案哦