將excel導入資料庫
A. 怎樣把EXCEL表導入access資料庫
1、首先准備好一個要導入Access的文件:
(1)將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) 的支持。
B. 怎樣將excel的數據導入資料庫
1 准備抄Excel導入數據
2 把Excel文件另存為(文本文件(製表符分隔)(*.txt))
3 把新生成的student.txt文件導入到plsql
打開plsql連接到要導入的oracle資料庫再打開Tools --> Text importer... --> Open data file 選擇要導入的txt文件
4 設置導入數據表結構
新生成的表欄位會對應Excel文件第一行標題,但新生成的表欄位Type需要設置,可以設置為nvarchar (導入數據為臨時數據,如果需要可以後期再作類型變換處理)
5 在Data to Oracle Tab中設置導入的表及相應的欄位
C. 把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了
D. 如何將excel中的數據導入到資料庫
如果只是想把
excel
中的用戶信息存到資料庫,則先打開excel,把用戶信息讀出來,保存到資料庫中就可以了
沒有必要把
excel文件保存到資料庫中將excel文件導入到gridview空間中,gridview控制項為雙向綁定,在將gridview中的數據插入資料庫string
path
=
this.mappath("../user.xls");
if(file.exists(path))
{
file.delete(path);
}
//將准備好excel文件拷貝至用戶下載文件夾,再進行寫入
file.(this.mappath("../user.xls"),path);
//然後將excel文件作為數據源進行數據寫入的操作
//在伺服器端載入excel文件
oledbconnection
cn
=
new
oledbconnection("provider=microsoft.jet.oledb.4.0;data
source="+
this.mappath("../user.xls")+";extended
properties=excel
8.0;");
oledbcommand
cmd
=
cn.createcommand();
cmd.commandtext
=
"insert
into
[user$]
values(@a,@b,@b)";
cn.open();
foreach(datagriditem
item
in
this.dgexcel.items)
{
cmd.parameters.clear();
cmd.parameters.add("@a",item.cells[2].text.trim());
cmd.parameters.add("@b",item.cells[1].text.trim());
cmd.parameters.add("@c",item.cells[3].text.trim());
cmd.executenonquery();
}
cn.close();
E. 如何將excel表格導入到資料庫表中
不知你用何種格式的資料庫,下面用access舉個例子;
新建一個空資料庫(或打開已有資料庫文件),在彈出的資料庫對話框中點擊「新建」----導入表---在「導入」對話框中的「導入類型」中選「ms
excel」按路徑找出你要導入的的excel文件,就樣就可以了
如果你要將excel文件導入已有資料庫表中,應注意excel文件的欄位設置與accesss的欄位應一致。
F. java中怎麼把excel導入資料庫
1、加入依賴的jar文件:
引用:
*mysql的jar文件
*Spring_HOME/lib/poi/*.jar
2、編寫資料庫鏈接類
packagecom.zzg.db;
importjava.sql.Connection;
importjava.sql.DriverManager;
publicclassDbUtils{
privatestaticConnectionconn;
static{
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/test","root","123456");
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticConnectiongetConn(){
returnconn;
}
publicstaticvoidsetConn(Connectionconn){
DbUtils.conn=conn;
}
}
3、編寫資料庫操作類
packagecom.zzg.db;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
publicclassExcuteData{
privatePreparedStatementpstmt;
publicbooleanExcuData(Stringsql){
Connectionconn=DbUtils.getConn();
booleanflag=false;
try{
pstmt=conn.prepareStatement(sql);
flag=pstmt.execute();
}catch(SQLExceptione){
e.printStackTrace();
}
returnflag;
}
}
4、編寫Excel表格實體類
packagecom.zzg.model;
publicclassTableCell{
privateString_name;
privateString_value;
publicStringget_name(){
return_name;
}
publicvoidset_name(String_name){
this._name=_name;
}
publicStringget_value(){
return_value;
}
publicvoidset_value(String_value){
this._value=_value;
}
}
5、編寫主鍵生成方法
packagecom.zzg.util;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.Random;
publicclassGenericUtil{
()
{
StringprimaryKey;
primaryKey=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate());
Randomr=newRandom();
primaryKey+=r.nextInt(100000)+100000;
returnprimaryKey;
}
}
6、編寫Excel操作類
packagecom.zzg.deployData;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.Serializable;
importjava.util.ArrayList;
importjava.util.List;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importcom.zzg.db.ExcuteData;
importcom.zzg.model.TableCell;
importcom.zzg.util.GenericUtil;
publicclassOperExcel<TextendsSerializable>{
privateHSSFWorkbookworkbook;
privateStringtableName;
privateClass<T>type;
privateStringsheetName;
publicOperExcel(FileexcelFile,StringtableName,Class<T>type,
StringsheetName)throwsFileNotFoundException,
IOException{
workbook=newHSSFWorkbook(newFileInputStream(excelFile));
this.tableName=tableName;
this.type=type;
this.sheetName=sheetName;
InsertData();
}
//向表中寫入數據
publicvoidInsertData(){
System.out.println("yyy");
ExcuteDataexcuteData=newExcuteData();
List<List>datas=getDatasInSheet(this.sheetName);
//向表中添加數據之前先刪除表中數據
StringstrSql="deletefrom"+this.tableName;
excuteData.ExcuData(strSql);
//拼接sql語句
for(inti=1;i<datas.size();i++){
strSql="insertinto"+this.tableName+"(";
Listrow=datas.get(i);
for(shortn=0;n<row.size();n++){
TableCellexcel=(TableCell)row.get(n);
if(n!=row.size()-1)
strSql+=excel.get_name()+",";
else
strSql+=excel.get_name()+")";
}
strSql+="values(";
for(shortn=0;n<row.size();n++){
TableCellexcel=(TableCell)row.get(n);
try{
if(n!=row.size()-1){
strSql+=getTypeChangeValue(excel)+",";
}else
strSql+=getTypeChangeValue(excel)+")";
}catch(RuntimeExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}
//執行sql
excuteData.ExcuData(strSql);
}
}
/**
*獲得表中的數據
*@paramsheetName表格索引(EXCEL是多表文檔,所以需要輸入表索引號)
*@return由LIST構成的行和表
*/
publicList<List>getDatasInSheet(StringsheetName){
List<List>result=newArrayList<List>();
//獲得指定的表
HSSFSheetsheet=workbook.getSheet(sheetName);
//獲得數據總行數
introwCount=sheet.getLastRowNum();
if(rowCount<1){
returnresult;
}
//逐行讀取數據
for(introwIndex=0;rowIndex<rowCount;rowIndex++){
//獲得行對象
HSSFRowrow=sheet.getRow(rowIndex);
if(row!=null){
List<TableCell>rowData=newArrayList<TableCell>();
//獲得本行中單元格的個數
intcolumnCount=sheet.getRow(0).getLastCellNum();
//獲得本行中各單元格中的數據
for(shortcolumnIndex=0;columnIndex<columnCount;columnIndex++){
HSSFCellcell=row.getCell(columnIndex);
//獲得指定單元格中數據
ObjectcellStr=this.getCellString(cell);
TableCellTableCell=newTableCell();
TableCell.set_name(getCellString(
sheet.getRow(0).getCell(columnIndex)).toString());
TableCell.set_value(cellStr==null?"":cellStr
.toString());
rowData.add(TableCell);
}
result.add(rowData);
}
}
returnresult;
}
/**
*獲得單元格中的內容
*
*@paramcell
*@returnresult
*/
protectedObjectgetCellString(HSSFCellcell){
Objectresult=null;
if(cell!=null){
intcellType=cell.getCellType();
switch(cellType){
caseHSSFCell.CELL_TYPE_STRING:
result=cell.getStringCellValue();
break;
caseHSSFCell.CELL_TYPE_NUMERIC:
result=cell.getNumericCellValue();
break;
caseHSSFCell.CELL_TYPE_FORMULA:
result=cell.getNumericCellValue();
break;
caseHSSFCell.CELL_TYPE_ERROR:
result=null;
break;
caseHSSFCell.CELL_TYPE_BOOLEAN:
result=cell.getBooleanCellValue();
break;
caseHSSFCell.CELL_TYPE_BLANK:
result=null;
break;
}
}
returnresult;
}
//根據類型返回相應的值
@SuppressWarnings("unchecked")
(TableCellexcelElement)
throwsRuntimeException,Exception{
StringcolName=excelElement.get_name();
StringcolValue=excelElement.get_value();
StringretValue="";
if(colName.equals("id")){
retValue="'"+GenericUtil.getPrimaryKey()+"'";
returnretValue;
}
if(colName==null){
retValue=null;
}
if(colName.equals("class_createuser")){
retValue="yaa101";
return"'"+retValue+"'";
}
retValue="'"+colValue+"'";
returnretValue;
}
}
7、編寫調用操作Excel類的方法
packagecom.zzg.deployData;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.IOException;
publicclassDeployData{
privateFilefileOut;
publicvoidexcute(Stringfilepath){
fileOut=newFile(filepath);
this.deployUserInfoData();
}
publicvoiddeployUserInfoData(){
try{
newOperExcel(fileOut,"test",Object.class,"Sheet1");
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
8、編寫客戶端
packagecom.zzg.client;
importcom.zzg.deployData.DeployData;
publicclassDeployClient{
publicstaticvoidmain(String[]args){
DeployDatadeployData=newDeployData();
deployData.excute("D://test.xls");
}
}
G. 怎麼把excel文件里的數據導入SQL資料庫
導入數據不一定要用OPENSET函數,可以用更簡單的方法,步驟如下:
1、首先雙擊打開sqlserver,右擊需要導入數據的資料庫,如圖所示。
(7)將excel導入資料庫擴展閱讀:
導入數據也可使用OPENROWSET函數,但使用該函數之前必須先啟用Ad Hoc Distributed Queries服務,因為這個服務不安全所以SqlServer默認是關閉的,系統管理員可以通過使用sp_configure 啟用 'Ad Hoc Distributed Queries'。
但有一個問題一定要特別注意,由於'Ad Hoc Distributed Queries'這個服務存在著較大的安全隱患,所以切記使用完畢之後一定要關閉。
所以,如果是導入數據建議不要使用OPENROWSET函數,弊大於利。
H. 怎麼把excel里的數據導入資料庫中的表中
打開企業管理器,打開要導入數據的資料庫,在表上按右鍵,所有任務-->導入數據,彈出DTS導入/導出向導,按 下一步 , 2、選擇數據源 Microsoft Excel 97-2000,文件名 選擇要導入的xls文件,按 下一步 , 3、選擇目的 用於SQL Server 的Microsoft OLE DB提供程序,伺服器選擇本地(如果是本地資料庫的話,如 VVV),使用SQL Server身份驗證,用戶名sa,密碼為空,資料庫選擇要導入數據的資料庫(如 client),按 下一步 , 4、選擇 用一條查詢指定要傳輸的數據,按 下一步 , 5、按 查詢生成器,在源表列表中,有要導入的xls文件的列,將各列加入到右邊的 選中的列 列表中,這一步一定要注意,加入列的順序一定要與資料庫中欄位定義的順序相同,否則將會出錯,按 下一步 , 6、選擇要對數據進行排列的順序,在這一步中選擇的列就是在查詢語
I. 我想把excel表格導入到資料庫,具體資料庫怎麼設置
1、打開要導入的Excel文件,觀察第一列是為欄位還是數據。
2、打開SQLServer,在需要導入的數據點擊右鍵 【任務版】-【導入數權據】
出現導入導出向導。
3、點擊下一步 ,進入【選擇數據源】頁面,注意紅框設置。
4、點擊下一步 ,進入【選擇目標】頁面,注意紅框設置。
5、點擊下一步 ,進入【指定表復制或查詢】頁面,注意紅框設置。
6、點擊下一步 ,進入【選擇源表和源視圖】頁面,注意紅框設置。
7、下一步,直到完成。出現【執行結果頁面】。
8、最後在SqlServer查詢表。
J. 怎樣把excel的數據導入到資料庫裡面去
1 准備Excel導入數據
2 把Excel文件另存為(文本文件(製表符分隔)(*.txt))
3 把新生成的student.txt文件導入專到plsql
打開plsql連接到要導入的oracle資料庫再打屬開Tools --> Text importer... --> Open data file 選擇要導入的txt文件
4 設置導入數據表結構
新生成的表欄位會對應Excel文件第一行標題,但新生成的表欄位Type需要設置,可以設置為nvarchar (導入數據為臨時數據,如果需要可以後期再作類型變換處理)
5 在Data to Oracle Tab中設置導入的表及相應的欄位