怎样从Excel中读取其他数据库的数据

怎样从Excel中读取其他数据库的数据,第1张

可能不甚了解。本文就介绍了怎么样在Excel软件中获取其它数据库中的数据,以便在常用的数据处理软件中利用其它数据库中的数据。

关键字:Microsoft Excel,数据库,导入,表,Microsoft uery。

一、Microsoft Excel 2003简介

Microsoft Excel 2003是Microsoft Office 2003中的一个组件,它是一个高效、实用的电子表格软件,具有强大的数据处理与数据分析能力,为广大用户进行数据处理提供了一个很好的工具,也为广大的用户所熟悉。如何在Excel中利用其它数据库中的数据呢?

二、导入其它数据库表中的数据到Excel中

在Microsoft Excel中导入其它数据库表中的数据的方法非常简单。具体 *** 作步骤如下:

第一步,启动Microsoft Excel,新建或者打开需要数据的工作簿,选中相应的工作表,并选中新导入的数据存放的起始单元格;

第二步,执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据所在的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置。

第三步,选中要导入的文件,单击图1所示对话框中的“打开”按钮。至此,选中的数据表中的数据就导入到了当前工作簿的当前工作表中了,当然也可以将导入的数据放在新的工作表中。

举例:在Excel工作簿“导入.XLS”中的sheet1工作表导入一个VFP(Visual FoxrPro,下同 )中的表(学生.dbf)中的数据。导入的具体 *** 作步骤如下:

首先打开工作簿“导入.XLS”,选中sheet1工作表,如图2所示;执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置;选中要导入数据的.dbf文件(此例的选择见图3),单击“打开”按钮。这样,就在Excel工作簿“导入.XLS”中的sheet1工作表中导入了VFP中建立的数据库表文件“学生.dbf”中的数据。结果如图4所示。

以上是在Excel工作表中导入VFP数据表中的数据的 *** 作方法。如果要在Excel工作表中导入其它数据库表中的数据, *** 作方法基本相似。说明以下几点:

下面是解决把Excel导入SQLserver时,出现“未在本地计算机上注册Microsoft.ACE.OLEDB.12.0”的具体解决方法:

材料/工具:电脑、AccessDatabaseEngine软件

1、首先,我们需要找到电脑中的“AccessDatabaseEngine”安装程序。

2、然后,用鼠标双击安装程序,勾选接受条款,然后点击【下一步】按钮。

3、选择安装的位置(默认安装在C盘),点击【安装】,等待安装完成即可。

4、然后,重新执行第一步,选择excel,点击下一步,就会出现这个界面了,在目标处选择【SQLServerNativeClient】,确认导入到的数据库,点击【下一步】。

5、接着,默认选择【复制一个或多个表或视图的数据】,点击【下一步】。

6、接下来,勾选第一项即可,后面是要创建的表名,如果需要修改列映射,就点击【编辑映射】,否则,直接点击【下一步】按钮。

7、然后,在【保存并运行包】界面点击【下一步】。

8、最后,在【完成向导】中点击【完成】,Excel就会自动开始导入数据了。

如果你只是要把excel保存到数据库,并不需要进一步的数据统计查询,你就可以简单地在asp.net的界面上放一个上传文件按钮,后台收到上传的excel文件,把它以二进制流的形式保存到SQL Server的Image字段或文件字段(据说sql2008才有)。导出时,在页面上放一个附件下载链接,用户点连接时你从数据库字段读出二进制流把它通过Response.OutputStream输出到页面上,即可出现excel的下载保存框。

如果你需要以导入的excel数据为基础,进行更多的数据统计查询,你就必须分析设计数据库表、字段,把相应的excel单元格数据保存到数据库字段。关键是如何从web页面导入excel单元格数据、又如何把查询出来的数据放到web页面上显示成客户需要的图表?

有两种方案:

1.用Excel自动化技术。

引用Excel的类型库生成.Net的包装类。导入时采用页面放上传文件按钮的方法,在服务器端收到文件后,用excel自动化类打开excel文件,再学会VBA语法,书写大量的代码读取单元格,然后连接数据库保存。导出时,查询数据库,启动excel自动化对象,通过VBA语法填写单元格,保存成excel文件,再用Response.OutputStream输出到页面上,触发excel文件的下载保存框。缺点:容易在服务器端产生excel死进程,代码编写复杂、代码量大、还要掌握VBA语法,用户需要上传、下载 *** 作

有人会说,显示数据时可以用网页直接显示,不用导出成excel。其实也很麻烦:用网页显示复杂的报表格式,网页设计工作量大;如果客户要求导出excel,这个工作就省不了;如果客户要求打印、打印预览、页面设置,比起excel浏览器的打印就捉襟见肘了。

2.用微软Office中间件——SOAOffice。(建议使用最新版的)

用SOAOffice输出Excel,就不会再有上述烦恼。通过SOAOffice不仅能够动态填充excel,读取excel单元格,而且还能在浏览器里直接浏览excel、或者下载、另存。SOAOffice提供标准C#.Net组件,组件在服务器端不使用自动化调用,稳定支持大量web并发访问,这是用com调用无法实现的。组件的属性方法都比较简单,易于调用,你完全不用去掌握复杂的VBA调用。

由于是纯.Net组件,所以服务器端不需安装office。 SOAOffice的excel组件SOAExcel含有Sheet、Cell等类似Excel的简化接口,调用简单。SOAExcel不但能能把数据库字段值动态填充到Excel单元格,还能把用户输入的单元格的值提出给开发者保存到数据库。

SOAExcel能够在客户端浏览器的网页里通过SOAOffice直接显示生成的Excel,用户不必先下载再打开观看内容。

举个导出excel的例子:

SOAOfficeX.ExcelResponse SOAExcel = new SOAOfficeX.ExcelResponse()

SOAOfficeX.ExcelResSheet sheet1 = SOAExcel.openSheet("Sheet1")// 打开一个Sheet

sheet1.openCell("D"+String.valueOf(8+i)).setValue(rs.getString("Count"))//循环填充数据。

SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl(response)

SOACtrl.assign(SOAExcel)// 绑定数据

// 打开模板并生成最终的excel报表

SOACtrl.webOpen("doc/test.xls", 1, UserName, "Excel.Sheet")

上述代码不但动态填充生成excel,而且在网页里直接显示生成的Excel给终端用户,由于使用了1打开模式,Excel是只读显示的。

读取excel单元格的代码也很简单:

SOAOfficeX.ExcelRequest SOAExcel = new SOAOfficeX.ExcelRequest()

SOAOfficeX.IExcelReqSheet sheetOrder = SOAExcel.OpenSheet("销售订单")

SOAOfficeX.IExcelReqCell cell1

cell1 = sheetOrder.OpenCell("I5")//订单编码

string sOrderNum = cell1.Value//cell1.Value就是读取的结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9261482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存