當前位置:首頁 » 操作系統 » cexcel導入到資料庫

cexcel導入到資料庫

發布時間: 2023-05-21 11:52:45

A. C#Excel導入多條數據到資料庫,如何快速導入

public static DataSet GetDataSet(string FilePath)

{

string OledbConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + FilePath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");

OleDbConnection conn = new OleDbConnection(OledbConnectionString);

ArrayList SheetNameList = new ArrayList();

try

{

if (conn.State == ConnectionState.Closed)

{

conn.Open();

}

DataTable dtExcelSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

string SheetName = "";

for (int i = 0; i < dtExcelSchema.Rows.Count; i++)

{

SheetName = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();

SheetNameList.Add(SheetName);

}

}

catch (Exception ex)

{

throw ex;

}

finally

{

conn.Close();

}

DataSet dsExcel = new DataSet(); try

{

string strsql = ""; for (int i = 0; i < SheetNameList.Count; i++)

{

strSql = "select * from [" + (string)SheetNameList[i] + "]";

OleDbDataAdapter oleExcelDataAdapter = new OleDbDataAdapter(strSql, conn);

DataTable dtExcel = new DataTable((string)SheetNameList[i]);

oleExcelDataAdapter.Fill(dtExcel);

dsExcel.Tables.Add(dtExcel);

}

return dsExcel;

}

catch (Exception ex)

{

throw ex;

}

}這個方法就是從EXCEL文件讀取數據轉換為DataSet 下面一段時調用的時候要注意的,寫要在伺服器端保存一下上傳的EXCEL,然後再調用 string filePath = "";

DataSet ds = new DataSet();

if (System.IO.Path.GetExtension(FileUpload1.FileName) != ".xls")

{

ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alter('hao')</script>");

return;

}

else

{

filePath = "D:\" + FileUpload1.FileName;

FileUpload1.SaveAs(filePath);

string fileName = FileUpload1.FileName;

int start = fileName.IndexOf('.');

fileName = fileName.Substring(0, start);

ds = GetDataSet(filePath);

}

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表格如何導入資料庫中

一.使用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運行

D. 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);
//}
//}
}

E. C#.NETExcel文件數據導入SQLServer資料庫完整代碼

--如果導飢旅旅入數據並生成表

select*into表from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel5.0;HDR=YES;DATABASE=c: est.xls',sheet1$)

===

--將某個目錄上的Excel表,導入到數爛凳據庫中

--將所有的Excel文件放到一個目錄中,假設為c: est,然後用下面的方法來做

createtable#t(fnamevarchar(260),depthint,isfbit)

insertinto#texecmaster..xp_dirtree'c: est',1,1

declaretbcursorforselectfn='c: est'+fnamefrom#t

whereisf=1andfnamelike'%.xls'--取.xls文件(EXCEL)

declare@fnvarchar(8000)

opentb

fetchnextfromtbinto@fn

while@@fetch_status=0

begin

--下面是查詢語句,需要根據你的情況鎮芹改為插入語句

--插入已有的表用:insertinto表selct*from...

--創建表用:select*into表from...

set@fn='select*from

OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel5.0;HDR=YES;DATABASE='+@fn+''',全部客戶$)'

exec(@fn)

fetchnextfromtbinto@fn

end

closetb

deallocatetb

droptable#t

F. 如何將excel中的數據導入到資料庫

  • 1)打開你的sql server,找到要導入數據的資料庫,右鍵——〉任務——〉導入數據

熱點內容
知道ID密碼怎麼定位 發布:2025-04-22 23:34:16 瀏覽:252
c語言采樣 發布:2025-04-22 23:30:03 瀏覽:916
資料庫伺服器修改了ip地址 發布:2025-04-22 23:25:36 瀏覽:6
c語言基礎案例 發布:2025-04-22 23:23:28 瀏覽:692
網路顯示沒有效的ip配置怎麼辦 發布:2025-04-22 23:23:23 瀏覽:803
怎麼查身份證密碼 發布:2025-04-22 23:12:07 瀏覽:206
如何用伺服器跑github項目 發布:2025-04-22 23:10:55 瀏覽:947
ccs編譯dsp程序的指令 發布:2025-04-22 23:06:42 瀏覽:369
映射盤符腳本 發布:2025-04-22 22:55:35 瀏覽:260
王者榮耀安卓系統怎麼轉換到蘋果 發布:2025-04-22 22:53:29 瀏覽:986