运用excel 导入导出access数据库
Access中的数据导入和导出

Access中的数据导入和导出在Access中,数据的导入和导出是非常重要的功能,可以帮助用户在不同的数据库之间进行数据交互和共享。
本文将介绍Access中的数据导入和导出的方法和步骤。
1. 数据导入数据导入是将外部数据源的数据导入到Access数据库中的过程。
Access支持导入各种类型的数据文件,如Excel、文本文件、XML文件等。
下面是数据导入的步骤:1. 打开Access数据库,在“外部数据”选项卡下,点击“导入Excel”,弹出“导入电子表格向导”对话框。
2. 在向导对话框的第一步中,选择要导入的Excel文件。
3. 在第二步中,可以选择导入哪个工作表的数据,还可以定义数据的筛选和排序规则。
4. 在第三步中,选择是否将数据导入现有的表格或新建一个表格。
如果选择导入到现有表格,还可以选择是否附加数据到表格尾部。
5. 在第四步中,可以选择导入的字段和数据类型,并可以进行高级选项设置。
6. 点击“完成”按钮,数据导入过程开始执行。
2. 数据导出数据导出是将Access数据库中的数据导出到外部文件的过程。
可以导出成Excel、文本文件、XML文件等常见文件格式。
下面是数据导出的步骤:1. 打开Access数据库,选择要导出的表格或查询结果。
2. 在“外部数据”选项卡下,点击“导出Excel”,弹出“导出电子表格向导”对话框。
3. 在向导对话框的第一步中,选择导出的位置和文件名。
4. 在第二步中,选择字段的导出顺序和格式。
可以选择只导出一部分字段或者全部导出。
5. 在第三步中,可以定义字段的导出规则,如筛选条件、排序规则等。
6. 在第四步中,可以选择是否创建Excel附录或数据透视表,并可以进行高级选项设置。
7. 点击“完成”按钮,数据导出过程开始执行。
通过以上的步骤,Access中的数据导入和导出功能可以轻松实现。
用户可以根据实际需求选择不同的数据源和导入/导出方式,以满足数据交互和共享的需求。
Access数据导入和导出

Access数据导入和导出Access是一款功能强大的数据库管理软件,它可以帮助用户方便地导入和导出数据。
本文将介绍Access中的数据导入和导出功能,以及相关的操作步骤和注意事项。
一、数据导入数据导入是将外部数据源的数据导入到Access数据库中的过程。
Access支持多种数据源的导入,包括Excel、CSV、文本文件等。
1. 导入Excel数据:步骤一:打开Access数据库,选择要导入数据的表格。
步骤二:点击“外部数据”选项卡,在“导入”组中选择“Excel”。
步骤三:浏览并选择要导入的Excel文件,点击“确定”。
步骤四:选择要导入的Excel表格,点击“下一步”。
步骤五:按照向导指示选择导入设置,点击“下一步”。
步骤六:指定数据表的名称,点击“完成”。
2. 导入CSV或文本文件:步骤一:打开Access数据库,选择要导入数据的表格。
步骤二:点击“外部数据”选项卡,在“导入”组中选择“文本文件”。
步骤三:浏览并选择要导入的CSV或文本文件,点击“导入”。
步骤四:按照向导指示选择导入设置,点击“下一步”。
步骤五:指定数据表的名称,点击“完成”。
二、数据导出数据导出是将Access数据库中的数据导出到外部文件的过程。
Access支持导出为Excel、CSV、文本文件等格式。
1. 导出为Excel文件:步骤一:打开Access数据库,选择要导出数据的表格。
步骤二:点击“外部数据”选项卡,在“导出”组中选择“Excel”。
步骤三:按照向导指示选择导出设置,点击“下一步”。
步骤四:选择导出的Excel文件路径和名称,点击“完成”。
2. 导出为CSV或文本文件:步骤一:打开Access数据库,选择要导出数据的表格。
步骤二:点击“外部数据”选项卡,在“导出”组中选择“文本文件”。
步骤三:按照向导指示选择导出设置,点击“下一步”。
步骤四:选择导出的CSV或文本文件路径和名称,点击“完成”。
三、注意事项1. 在导入数据时,确保源数据的格式和目标数据表的字段类型匹配,以避免数据丢失或不准确。
运用excel 导入导出access数据库

excel 导入导出access数据库(winform)//从excel导入到数据库。
OleDbConnection conExcel = new OleDbConnection();try{OpenFileDialog openFile = new OpenFileDialog();//打开文件对话框。
openFile.Filter = ("Excel 文件(*.xls)|*.xls");//后缀名。
if (openFile.ShowDialog() == DialogResult.OK){string filename = openFile.FileName;int index = stIndexOf("\\");//截取文件的名字filename = filename.Substring(index + 1);conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\Appdata.mdb";//将excel导入access//distinct :删除excel重复的行.//[excel名].[sheet名] 已有的excel的表要加$//where not in : 插入不重复的记录。
string sql = "insert into 用户表select distinct * from [Excel 8.0;database=" + filename + "].[用户表$] where 记录编号not IN (select 记录编号from 用户表)";OleDbCommand com = new OleDbCommand(sql, conExcel);conExcel.Open();com.ExecuteNonQuery();MessageBox.Show("导入数据成功","导入数据", MessageBoxButtons.OK, rmation );}}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{conExcel.Close();}//导出到excel操作。
access数据库导入和导出

一、excel数据导入到access数据库(1)直接导入法1、启动Access,新建一数据库文件。
2、在“表”选项中,执行“文件→获取外部数据→导入”命令,打开“导入”对话框。
3、按“文件类型”右侧的下拉按钮,选中“Microsoft Excel(、xls)”选项,再定位到需要转换的工作簿文件所在的文件夹,选中相应的工作簿,按下“导入”按钮,进入“导入数据表向导”对话框(图1)。
4、选中需要导入的工作表(如“工程数据”),多次按“下一步”按钮作进一步的设置后,按“完成”按钮。
注意:如果没有特别要求,在上一步的操作中直接按“完成”按钮就行了。
5、此时系统会弹出一个导入完成的对话框,按“确定”按钮。
至此,数据就从Excel中导入到Access中。
(2)建立链接法1、启动Access,新建一数据库文件。
2、在“表”选项中,执行“文件→获取外部数据→链接表”命令,打开“链接”对话框。
二、Access中数据导入excel•在Excel中使用Access数据您可能想在Excel工作簿中使用Access数据,以便利用数据分析与绘制图表功能、数据排列与布局的灵活性或其她一些Access中不可用的功能。
将Access数据复制到Excel中您能从Access的数据表视图复制数据,然后将数据粘贴到Excel工作表中。
1. 启动Access,然后打开包含要复制的记录的表、查询或窗体。
2. 在“起始页”选项卡上单击“视图”,然后单击“数据表视图”。
3. 选择要复制的记录。
如果要选择特定列,请在相邻的列标题之间拖动。
4. 在“开始”选项卡上的“剪贴板”组中,单击“复制”。
5. 启动Excel,然后打开要在其中粘贴数据的工作表。
6. 单击要显示第一个字段名称的工作表区域的左上角。
若要确保复制的记录不替换现有记录,请确保工作表中您单击的单元格的下方与右方不存在数据。
7. 在“开始”选项卡上的“剪贴板”组中,单击“粘贴”。
将Access数据导出到Excel通过使用Access中的“导出向导”,能将一个Access数据库对象(如表、查询或窗体)或视图中选择的记录导出到Excel工作表中。
EXCEL导入ACCESS数据库代码

EXCEL导入ACCESS^据库代码Dim Conn As ADODB.ConnectionSet Conn = New ADODB.ConnectionConn.Open "连接到你的数据库XJGL.MDB勺字符串"Conn.Execute "select * into tmptable from [excel 8.0;database=" + 你的 excel 表名 + "].[sheet 名$]"Conn.Execute "insert into xsda( 学籍号,准考证号 ,姓名,性别,出生年月,班级)select学籍号,准考证号,姓名,性别, 出生年月 , 班级 from tmptable"Conn.Execute "drop tabel tmptable"Set Conn = Nothing///////////////////////Sub LoadUsers()On Error Resume NextScreen.MousePointer = 11Dim xlspath As StringDim xlsConn As New ADODB.ConnectionDim xlsrs As New ADODB.RecordsetDim sql As StringDim totalRecords As Longxlspath = Text1sql = "select * from [Sheet1$]"With xlsConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &xlspath & ";ExtendedProperties=""Excel 8.0;HDR=Yes;IMEX=1"";".CommandTimeout = 5.OpenEnd Withxlsrs.Open sql, xlsConn, adOpenStatic, adLockReadOnlytotalRecords = xlsrs.RecordCountProgressBar1.Max = totalRecordsProgressBar1.Min = 0ProgressBar1.Value = 0Conn.Execute "delete from Users"Dim i As LongFor i = 0 To totalRecords - 1Conn.Execute "insert into Users (ID,Name,Shenfennums,Address) values(" & xlsrs(" 工号") & ",'" & xlsrs("员工名称 ") & "','" & xlsrs(" 身份证号码 ") & "','" &地址") & xlsrs(""')"ProgressBar1.Value = ProgressBar1.Value + 1xlsrs.MoveNextNextxlsrs.CloseSet xlsrs = NothingxlsConn.CloseScreen.MousePointer = 0 Unload Me End Sub //////////////////////////// Dim extend_str As String Dim execl_cnn As New ADODB.Connection Dim execl_rst As New ADODB.Recordset Dim execl_count_rst As New ADODB.Recordset ' 纪录数量Dim execl_field_rst As New ADODB.Recordset Dim execl_strconn As String Dim execl_strcmd As String Dim execl_count_str As String Dim insertStr As String ' 操作 oracle 数据库的记录集 Dim rst As ADODB.RecordsetCommonDialog1.ShowOpen extend_str = Right(CommonDialog1.FileName, 3) If (extend_str = "xls") Then execl_cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & CommonDialog1.FileName & _";Extended Properties=Excel 8.0;"ElseIf (extend_str = "dbf") Thenexecl_cnn.ConnectionString = "Provider=MSDASQL.1;Driver=Microsoft Visual FoxproDriver;SourceType=DBF;DBQ=" & getDir(CommonDialog1.FileName)execl_cnn.OpenEnd IfIf (extend_str = "xls") Thenexecl_strcmd = "SELECT * from 'Sheet1$' "execl_cou nt_str = "SELECT cou nt(*) from 'Sheet1$' "execl_field_rst.Open execl_count_str, execl_cnn If(execl_field_rst.Fields(0).Value = 0) Thenexecl_strcmd = "SELECT * from [" &getFileNoExt(getfile(CommonDialog1.FileName)) & "$] " execl_count_str = "SELECT count(*) from [" & getFileNoExt(getfile(CommonDialog1.FileName)) & "$] "End Ifexecl_field_rst.CloseElseIf (extend_str = "dbf") Thenexecl_strcmd = "SELECT * from " & CommonDialog1.FileName execl_count_str = "SELECT count(*) from " & CommonDialog1.FileNameEnd Ifexecl_rst.Open execl_strcmd, execl_cnnexecl_count_rst.Open execl_count_str, execl_cnnIf (CommonDialog1.FileName <> "") Then' 进度条设置ProgressBar1.Min = 0ProgressBar1.max = execl_count_rst.Fields(0).Value如果有记录If (execl_rst.RecordCount) ThenIf (Option1.Value) Then ' 如果是仪器总库If (execl_rst.Fields.Count = 8) ThenSet rst = yg_gain_table_recordset("yg_device")execl_rst.MoveFirstDo While (Not execl_rst.EOF)rst.AddNewrst.Fields(0).Value = yg_getNextId("yg_device_id")rst.Fields(1).Value = execl_rst.Fields(0).Value & "" rst.Fields(2).Value = execl_rst.Fields(1).Value & "" rst.Fields(3).Value =execl_rst.Fields(2).Value & "" rst.Fields(4).Value =execl_rst.Fields(3).Value & "" rst.Fields(5).Value =execl_rst.Fields(4).Value & "" rst.Fields(6).Value =execl_rst.Fields(5).Value & "" rst.Fields(7).Value =execl_rst.Fields(6).Value & "" rst.Fields(8).Value =execl_rst.Fields(7).Value & "" rst.Updateexecl_rst.MoveNextProgressBar1.Value = ProgressBar1.Value + 1 DoEventsLoopyg_free_recordset rstElseMsgBox " 结构不一致 "Exit SubEnd IfEnd IfIf (Option2.Value) Then ' 如果是外借仪器If (execl_rst.Fields.Count = 12) ThenSet rst = yg_gain_table_recordset("yg_out_device") execl_rst.MoveFirst Do While (Not execl_rst.EOF)rst.AddNewrst.Fields(0).Value = yg_getNextId("yg_out_device_id")rst.Fields(1).Value = execl_rst.Fields(0).Value & "" rst.Fields(2).Value = execl_rst.Fields(1).Value & "" rst.Fields(3).Value =execl_rst.Fields(2).Value & "" rst.Fields(4).Value =execl_rst.Fields(3).Value & "" rst.Fields(5).Value =execl_rst.Fields(4).Value & "" rst.Fields(6).Value =execl_rst.Fields(5).Value & "" rst.Fields(7).Value =execl_rst.Fields(6).Value & "" rst.Fields(8).Value =execl_rst.Fields(7).Value & "" rst.Fields(9).Value =execl_rst.Fields(8).Value & "" rst.Fields(10).Value =execl_rst.Fields(9).Value & "" rst.Fields(11).Value =execl_rst.Fields(10).Value & "" rst.Fields(12).Value =execl_rst.Fields(11).Value & "" rst.Updateexecl_rst.MoveNextProgressBar1.Value = ProgressBar1.Value + 1 DoEvents Loopyg_free_recordset rstElseMsgBox " 结构不一致 "Exit SubEnd IfEnd If。
在Excel和Access间复制、导入和导出数据

在Excel和Access间复制、导入和导出数据
今天给大家介绍在Microsoft OfficeAccess和Microsoft OfficeExcel之间存在多种交换数据的方法。
-若要将Access中的数据装入Excel,可以从Access数据表中复制数据并粘贴到Excel工作表中,从Excel工作表连接到Access数据库,或者将Access数据导出到Excel工作表中。
-若要将Excel中的数据装入Access,可以从Excel工作表复制数据并粘贴到Access数据表中,将Excel工作表导入Access表中,或者从Access表链接到Excel工作表。
注释
-导入”一词在Excel和Access中的意义各不相同。
在Excel中,导入指的是建立一个可刷新的永久数据连接。
在Access中,导入则指将数据装入Access中一次,但不建立数据连接。
-您不能将Excel工作簿保存为Access数据库。
Excel 和Access都不提供利用Excel数据创建Access数据库的功能。
在Excel中使用Access数据。
ASP将Excel导入到Access数据库的方法实例
Excel中的数据导入到Access中,前提是在Access中的表已经建好。
dim conndim conn2set conn=CreateObject("ADODB.Connection")conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=c:\book1.mdb"set conn2=CreateObject("ADODB.Connection")conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DatabasePassword=;Extended properties=Excel 5.0;Data Source=c:\book1.xls"sql = "select * FROM [Sheet1$]"set rs = conn2.execute(sql)while not rs.eofsql = "insert into xxx([a],[bb],[c],[d]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"','"&fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')"conn.execute(sql)rs.movenextwendconn.closeset conn = nothingconn2.closeset conn2 = nothingfunction fixsql(str)dim newstrnewstr = strif isnull(newstr) thennewstr = ""elsenewstr = replace(newstr,"'","'")end iffixsql = newstrend function导入到Sql Server数据库中时,如果Excel文件和数据库不在同一台服务器上时,请参考上面的代码。
如何将excel里的数据批量导入ACCESS
下面是对EXECL的基础操作说明:Set xlApp = CreateObject("Excel.Application")‘激活EXCEL应用程序xlApp.Visible = False ‘隐藏EXCEL应用程序窗口Set xlBook = xlApp.Workbooks.Open(strDestination)‘打开工作簿,strDestination为一个EXCEL报表文件Set xlSheet = xlBook.Worksheets(1)‘设定工作表1、定义EXCEL对象变量dim x as excel.application2、VB中,启动EXCELset x=createobject("excel.application")3、新建一个EXCEL工作簿x.workbooks.add4、选定工作表1set xsheet=xbook.worksheets(1)5、指定单元格,并赋值xsheet.cell(1,1)=ret.fields(0)6、指定EXCEL列宽xsheet.column(1).columnwidth=107、RANGE()函数,选定单元格区域range(cells(1,1),cells(10,20))8、设置EXCEL字体xsheet.range(cells(1,1),cells(10,20))="黑体"9、设置EXCEL为粗体xsheet.range(cells(1,1),cells(10,20)).fontbold=true10、设置EXCEL表格边框xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous 11、运行时,显示EXCEL或隐藏EXCELx.visible=true12、保存工作簿xbook save13、退出EXCELx.quit14、交还控制权给EXCELset x=nothing15、打印EXCEL表x.active.window.selectedsheets.printout copies=numcopies16、退出EXCEL时,不出现保存提示。
Excel与Access之间数据导入导出
Excel与Access的数据导入导出本次导入使用的是Microsoft Office 2007中的Access 和 Excel软件从Excel中把数据导入到Access中:1.打开Access2007如上图,点击空数据,新建一个空的数据库。
在界面的右边填入数据库名称“Import Excel”(用户可以自己定义数据库的名称),点击创建按钮新建空数据库,如下图。
2.点击“外部数据”选项页,在“外部数据”选项页导入选项中,可以找到如上图的“Excel”,点击它,弹出如下对话框。
在“文件名字”中找到要导入的“Excel”文件,例如井口文件、样品分析文件、岩性文件等等。
默认的选项为第一项“从源数据中导入到当前数据库”,点击“确定”按钮。
弹出如下对话框。
如果在Excel文件中第一行为列标题,那么就选中复选框“第一行包含列标题”,否则,勾掉该选项。
点击下一步。
3.设置导入文件的格式。
在上图中,依次选中每列,设定他们的数据类型,根据地质上的实际类型来设置即可。
设置完毕,点击“下一步”按钮。
4.设置导入的新数据表的“主键”。
“主键”的含义可查阅相关数据库书籍,用户在此可以使用Access默认的主键,即单选项第一项,也可以选择第二项“选择自己的主键”,或者第三项“没有主键”。
设置完主键点击“下一步”按钮。
5.命名新导入的数据表名称。
如上图,在“导入到表”中填写新表的名称,或者填入已经存在于数据库中的表。
建议新命名一个表。
如要导入成功后分析表格数据格式,可以选择下面的复选框“我想导入数据后分析我的表格”进一步修改数据表格格式。
设置完毕,点击“完成”按钮。
6.保存导入步骤。
在此,如需要保存导入步骤,就选择复选项,如不需保存,则直接点击“关闭”按钮即可。
建议不保存,因为每次导入未必都是同一个步骤。
导入成功后,可以在Access数据库界面的左边看到新导入的数据表格。
双击“assay_new_number”表,即可看到其内的数据,如下图:从Access中导出数据到Excel之中1.首先在Access中打开要导出的数据表格,如下图:2.然后在“外部数据”选项页导出选项中可以找到“Excel”选项,点击它,弹出如下对话框:在上面的对话框中,在“文件名称”中指定导出Excel文件的位置和名称,在“文件格式”中选择导出Excel文件的格式。
将Excel中数据导入到Access数据库中的方法
将Excel中数据导⼊到Access数据库中的⽅法复制代码代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head id="Head1" runat="server"><title>⽆标题页</title><style type="text/css">.style1{height: 16px;}.style3{height: 23px;}</style></head><body><form id="form1" runat="server"><div></div><table align="center" border="1" bordercolor="honeydew" cellpadding="0"cellspacing="0"><tr><td style="FONT-SIZE: 9pt; COLOR: #ff0000; BACKGROUND-COLOR: #ff9933; TEXT-ALIGN: center"class="style1"></td><td colspan="2"style="FONT-SIZE: 9pt; COLOR: #ffffff; HEIGHT: 16px; BACKGROUND-COLOR: #ff9933; TEXT-ALIGN: center">将Excel数据写⼊Access数据库中</td></tr><tr><td style="BACKGROUND-COLOR: #ffffcc; TEXT-ALIGN: center"></td><td style="BACKGROUND-COLOR: #ffffcc; TEXT-ALIGN: center"><iframe id="I1" name="I1" scrolling="yes" src="学⽣成绩.xls"style="WIDTH: 407px; HEIGHT: 280px"></iframe></td><td style="WIDTH: 190px; BACKGROUND-COLOR: #ffffcc; TEXT-ALIGN: center"><asp:GridView ID="GridView1" runat="server" CellPadding="4" Font-Size="9pt"ForeColor="#333333" GridLines="None" Width="228px"><FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /><RowStyle BackColor="#FFFBD6" ForeColor="#333333" /><SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /><PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /><HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /><AlternatingRowStyle BackColor="White" /></asp:GridView></td></tr><tr><td style="BACKGROUND-COLOR: #ff9900; TEXT-ALIGN: center" class="style3"></td><td style="HEIGHT: 23px; BACKGROUND-COLOR: #ff9900; TEXT-ALIGN: center"valign="top"><asp:Button ID="Button3" runat="server" Font-Size="9pt" onclick="Button1_Click"Text="Excel数据写⼊Access数据库中" /><asp:Label ID="Label1" runat="server" Text="Label" Visible="False"style="font-size: x-small"></asp:Label></td><td style="WIDTH: 190px; HEIGHT: 23px; BACKGROUND-COLOR: #ff9900; TEXT-ALIGN: center"> <asp:Button ID="Button2" runat="server" Font-Size="9pt" onclick="Button2_Click"Text="数据库中显⽰Excel数据" /></td></tr><tr><td> </td></tr></table></form></body></html>复制代码代码如下:using System;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.OleDb;public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}public OleDbConnection CreateCon(){string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("UserScore.mdb") + ";User Id=admin;Password=;";OleDbConnection odbc = new OleDbConnection(strconn);return odbc;}protected void Button1_Click(object sender, EventArgs e){//定义Excel列表string StyleSheet = "Sheet1";//调⽤⾃定义LoadData⽅法,将Excel⽂件中数据读到ASPNET页⾯中LoadData(StyleSheet);//定义查询的SQL语句string sql = "select ID,⽤户姓名,试卷,成绩,考试时间 from Score";//创建Oledb数据库连接OleDbConnection con = CreateCon();con.Open();//打开数据库连接OleDbCommand com = new OleDbCommand(sql, con);//开始事务OleDbTransaction tran = con.BeginTransaction();com.Transaction = tran;//创建适配器OleDbDataAdapter da = new OleDbDataAdapter(com);OleDbCommandBuilder cb = new OleDbCommandBuilder(da);//创建DataSet数据集DataSet ds = new DataSet();//填充数据集da.Fill(ds);int curIndex = 0;if (ds.Tables[0].Rows.Count > 0){curIndex = Convert.ToInt32(ds.Tables[0].Rows[0][0]);}//创建⼀个内存表DataTable tb = this.getExcelDate();string selsql = "";for (int i = 0; i < tb.Rows.Count; i++){string UserName = tb.Rows[i][0].ToString();selsql = "select count(*) from Score where ⽤户姓名='" + UserName + "'";}//判断Excel⽂件中是否已经导⼊到Access数据库中if (ExScalar(selsql) > 0){Label1.Visible = true;Label1.Text = "<script language=javascript>alert('该Excle中的数据已经导⼊数据库中!');location='Default.aspx'; </script>";}else{//循环读取Excel⽂件中数据,并添加到Access事先创建好的数据库表中for (int i = 0; i < tb.Rows.Count; i++){DataRow dr = ds.Tables[0].NewRow();dr[0] = ++curIndex;dr[1] = tb.Rows[i][0];dr[2] = tb.Rows[i][1];dr[3] = tb.Rows[i][2];dr[4] = tb.Rows[i][3];ds.Tables[0].Rows.Add(dr);}try{da.Update(ds);//执⾏插⼊操作mit();//事务提交Label1.Visible = true;Label1.Text = "<script language=javascript>alert('数据导⼊成功!');location='Default.aspx';</script>";}catch{tran.Rollback();//事务回滚Label1.Visible = true;Label1.Text = "<script language=javascript>alert('数据导⼊失败!');location='Default.aspx';</script>";}finally{con.Close();//关闭数据库连接}}}protected void Button2_Click(object sender, EventArgs e){string sqlstr = "select * from Score";OleDbConnection conn = CreateCon();conn.Open();OleDbCommand mycom = new OleDbCommand(sqlstr, conn);OleDbDataReader dr = mycom.ExecuteReader();dr.Read();if (dr.HasRows){GetDataSet(sqlstr);}else{Label1.Visible = true;Label1.Text = "<script language=javascript>alert('数据库中没有数据信息,请先导⼊再查询!');location='Default.aspx'; </script>";}dr.Close();conn.Close();}public DataSet GetDataSet(string sqlstr){OleDbConnection conn = CreateCon();OleDbDataAdapter myda = new OleDbDataAdapter(sqlstr, conn);DataSet ds = new DataSet();myda.Fill(ds);GridView1.DataSource = ds;GridView1.DataBind();return ds;}public DataTable getExcelDate(){string strExcelFileName = Server.MapPath("学⽣成绩.xls");string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";string sql = "select * from [Sheet1$]";OleDbDataAdapter da = new OleDbDataAdapter(sql, strcon);DataSet ds = new DataSet();da.Fill(ds);return ds.Tables[0];}public void LoadData(string StyleSheet){//定义数据库连接字符串 mstring strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + Server.MapPath("学⽣成绩.xls") + ";Extended Properties=Excel 8.0";//创建数据库连接OleDbConnection myConn = new OleDbConnection(strCon);//打开数据链接,得到⼀个数据集myConn.Open();//创建DataSet对象DataSet myDataSet = new DataSet();//定义查询的SQL语句string StrSql = "select * from [" + StyleSheet + "$]";//创建数据库适配器OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn);//填充数据集中的数据myCommand.Fill(myDataSet, "[" + StyleSheet + "$]");//释放占有的资源myCommand.Dispose();//关闭数据库连接myConn.Close();}public int ExScalar(string sql){OleDbConnection conn = CreateCon();conn.Open();OleDbCommand com = new OleDbCommand(sql, conn);return Convert.ToInt32(com.ExecuteScalar());conn.Close();}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
excel 导入导出access数据库(winform)//从excel导入到数据库。
OleDbConnection conExcel = new OleDbConnection();try{OpenFileDialog openFile = new OpenFileDialog();//打开文件对话框。
openFile.Filter = ("Excel 文件(*.xls)|*.xls");//后缀名。
if (openFile.ShowDialog() == DialogResult.OK){string filename = openFile.FileName;int index = stIndexOf("\\");//截取文件的名字filename = filename.Substring(index + 1);conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\Appdata.mdb";//将excel导入access//distinct :删除excel重复的行.//[excel名].[sheet名] 已有的excel的表要加$//where not in : 插入不重复的记录。
string sql = "insert into 用户表select distinct * from [Excel 8.0;database=" + filename + "].[用户表$] where 记录编号not IN (select 记录编号from 用户表)";OleDbCommand com = new OleDbCommand(sql, conExcel);conExcel.Open();com.ExecuteNonQuery();MessageBox.Show("导入数据成功","导入数据", MessageBoxButtons.OK, rmation );}}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{conExcel.Close();}//导出到excel操作。
OleDbConnection conExcel = new OleDbConnection();try{SaveFileDialog saveFile = new SaveFileDialog();saveFile.Filter = ("Excel 文件(*.xls)|*.xls");//指定文件后缀名为Excel 文件。
if (saveFile.ShowDialog() == DialogResult.OK){string filename = saveFile.FileName;if (System.IO.File.Exists(filename)){System.IO.File.Delete(filename);//如果文件存在删除文件。
}int index = stIndexOf("\\");//获取最后一个\的索引filename = filename.Substring(index + 1);//获取excel名称(新建表的路径相对于SaveFileDialog的路径)//select * into 建立新的表。
//[[Excel 8.0;database= excel名].[sheet名] 如果是新建sheet表不能加$,如果向sheet里插入数据要加$.//sheet最多存储65535条数据。
string sql = "select top 65535 * into [Excel 8.0;database=" + filename + "].[用户表] from 用户表";conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\Appdata.mdb";//将数据库放到debug目录下。
OleDbCommand com = new OleDbCommand(sql, conExcel);conExcel.Open();com.ExecuteNonQuery();MessageBox.Show("导出数据成功","导出数据", MessageBoxButtons.OK, rmation );}}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{conExcel.Close();}使用Transact-SQL进行数据导入导出方法详解[转载]本文讨论了如何通过Transact-SQL以及系统函数OPENDATASOURCE和OPENROWSET在同构和异构数据库之间进行数据的导入导出,并给出了详细的例子以供参考。
1. 在SQL Server数据库之间进行数据导入导出(1).使用SELECT INTO导出数据在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同时具备两个功能:根据SELECT后跟的字段以及INTO后面跟的表名建立空表(如果SELECT后是*, 空表的结构和FROM所指的表的结构相同);将SELECT查出的数据插入到这个空表中。
在使用SELECT INTO语句时,INTO后跟的表必须在数据库不存在,否则出错,下面是一个使用SELECT INTO的例子。
假设有一个表table1,字段为f1(int)、f2(varchar(50))。
SELECT * INTO table2 FROM table1 这条SQL语的在建立table2表后,将table1的数据全部插入到table1中的,还可以将*改为f1或f2以便向适当的字段中插入数据。
SELECT INTO不仅可以在同一个数据中建立表,也可以在不同的SQL Server数据库中建立表。
USE db1 SELECT * INTO db2.dbo.table2 FROM table1以上语句在数据库db2中建立了一个所有者是dbo的表table2,在向db2建表时当前登录的用户必须有在db2建表的权限才能建立table2。
使用SELECT INTO要注意的一点是SELECT INTO不可以和COMPUTE一起使用,因为COMPUTE返回的是一组记录集,这将会引起二意性(即不知道根据哪个表建立空表)。
(2).使用INSERT INTO 和UPDA TE插入和更新数据SELECT INTO只能将数据复制到一个空表中,而INSERT INTO可以将一个表或视图中的数据插入到另外一个表中。
INSERT INTO table1 SELECT * FROM table2 或INSERT INTO db2.dbo.table1 SELECT * FROM table2但以上的INSERT INTO语句可能会产生一个主键冲突错误(如果table1中的某个字段是主键,恰巧table2中的这个字段有的值和table1的这个字段的值相同)。
因此,上面的语句可以修改为INSERT INTO table1 -- 假设字段f1为主键SELECT * FROM table2 WHERE NOT EXISTS(SELECT table1.f1 FROM table1 WHERE table1.f1=table2.f1 ) 以上语句的功能是将table2中f1在table1中不存在的记录插入到table1中。
要想更新table1可以使用UPDA TE语句UPDATE table1 SET table1.f1=table2.f1, table1.f2=table2.f2 FROM table2 WHERE table1.f1=table2.f1 将以上两条INSERT INTO和UPDATE语句组合起来在一起运行,就可以实现记录在table1中不存在时插入,存在时更新的功能,但要注意要将UPDATE 放在INSERT INTO前面,否则UPDATE更新的记录数将是table1和table2记录数的总和。
2. 使用OPENDATASOURCE和OPENROWSET在不同类型的数据库之间导入导出数据在异构的数据库之间进行数据传输,可以使用SQL Server提供的两个系统函数OPENDATASOURCE 和OPENROWSET。
OPENDATASOURCE可以打开任何支持OLE DB的数据库,并且可以将OPENDATASOURCE做为SELECT、UPDATE、INSERT和DELETE后所跟的表名。
如SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=192.168.18.252;User ID=sa;Password=test').pubs.dbo.authors这条语句的功能是查询192.168.18.252这台机器中SQL Server数据库pubs中的authors表。
从这条语句可以看出,OPENDATASOURCE有两个参数,第一个参数是provider_name,表示用于访问数据源的OLE DB 提供程序的PROGID 的名称。
provider_name 的数据类型为char,没有默认值。
第二个参数是连接字符串,根据OLE DB Provider不同而不同(如果不清楚自己所使用的OLE DB Provider的连接字符串,可以使用delphi、visual studio等开发工具中的ADO控件自动生成相应的连接字符串)。
OPENROWSET函数和OPENDATASOURCE函数类似,只是它可以在打开数据库的同时对数据库中的表进行查询,如以下语句OPENROWSET('MSDASQL.1', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=c:\db; SourceType=DBF', 'SELECT * FROM [b.dbf]')最后一个参数查询foxpro表b.dbf,读者可以通过where 条件对b.dbf进行过滤。