当前位置:首页 » 操作系统 » 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,找到要导入数据的数据库,右键——〉任务——〉导入数据

热点内容
服务器ip承载量 发布:2025-04-23 01:53:37 浏览:594
易语言源码怎么保存 发布:2025-04-23 01:36:28 浏览:159
查看应用数据的存储路径 发布:2025-04-23 01:36:18 浏览:382
winformaccess数据库 发布:2025-04-23 01:31:20 浏览:166
免费申请腾讯云服务器 发布:2025-04-23 01:23:12 浏览:731
阿里云上传慢 发布:2025-04-23 01:04:10 浏览:586
我爸电脑配置给别人看没什么事吧 发布:2025-04-23 00:58:54 浏览:723
大学编程课程 发布:2025-04-23 00:48:55 浏览:470
服务器的内网ip有什么用 发布:2025-04-23 00:46:40 浏览:958
诛仙3需要什么配置 发布:2025-04-23 00:29:49 浏览:665