如何把DB块中的数据导入Excel中
- 格式:doc
- 大小:22.00 KB
- 文档页数:2
数据导入导出EXCEL与数据库的连接在当今信息时代,数据的处理和管理已经成为了各行各业中不可或缺的一部分。
在企业管理、市场营销、科学研究等领域,数据的导入导出以及与数据库的连接变得尤为重要。
本文将介绍如何进行数据导入导出EXCEL与数据库的连接,并探讨其在实际应用中的优势和应用场景。
一、数据导入导出EXCEL的基本方法在进行数据导入导出EXCEL之前,首先需要明确的是EXCEL文件是一种常见的电子表格文件格式,而数据库则是一种用于存储和管理数据的系统。
为了实现两者之间的连接,我们可以选用以下几种方法:1.使用EXCEL自带的导入导出功能:EXCEL软件本身提供了导入导出功能,用户可以通过“文件”-“导入”和“文件”-“导出”来实现数据的传输。
这种方法简单易用,适合处理小规模的数据,但对于大规模数据的处理效率较低。
2.使用宏(Macro):宏是一种自动化操作的脚本,可以通过编写宏来实现复杂的数据导入导出操作。
通过宏,我们可以自定义数据的格式、导入导出规则等,提高了数据处理的灵活性和自动化水平。
3.使用开源工具:除了EXCEL自带的功能,还存在一些开源的工具可以实现数据的导入导出,如Apache POI、Openpyxl等。
这些工具提供了丰富的API和文档,方便开发人员进行二次开发和定制化设计。
二、数据库与EXCEL的连接方式数据库与EXCEL的连接方式多种多样,我们可以根据实际需求选择合适的连接方式。
以下是一些常用的连接方式:1.ODBC(Open Database Connectivity)连接:ODBC是一种数据库连接标准,通过ODBC连接,我们可以直接在EXCEL中连接数据库并进行数据的导入导出操作。
这种方式对于频繁操作数据库的用户来说,非常方便快捷。
2.使用数据库驱动程序:各种数据库都提供了相应的驱动程序,通过安装数据库驱动程序,我们可以在EXCEL中连接数据库。
这种方式比较灵活,可以适用于不同类型的数据库。
数据导入与导出EXCEL外部数据连接数据导入与导出:EXCEL外部数据连接数据导入与导出是在工作中经常遇到的需求,尤其是在处理大量数据时。
EXCEL作为一款功能强大的电子表格软件,提供了许多数据导入与导出的功能。
其中,外部数据连接是一种常用的方式,可以实现与其他文件或数据库的数据交互。
本文将介绍如何在EXCEL中进行外部数据连接的操作,以及其使用场景和注意事项。
一、什么是外部数据连接?外部数据连接是指在EXCEL中连接外部数据源,如数据库、文本文件等,通过建立链接,将外部数据源中的数据导入或导出到EXCEL 中。
通过外部数据连接,我们可以方便地从其他数据源中获取数据,并在EXCEL中进行数据分析、处理和展示等操作。
二、如何进行外部数据连接的操作?在EXCEL中,进行外部数据连接的操作步骤如下:1. 打开EXCEL软件,在工作簿中选择一个空白的工作表。
2. 点击“数据”选项卡,选择“从其他来源”在弹出的下拉菜单中选择对应的数据源,如“从文本”、“从数据库”等。
3. 根据选择的数据源类型,按照引导进行设置,如选择文本文件时,需要指定文件路径和文件格式等;选择数据库时,需要填写数据库服务器的名称、登录名、密码等信息。
4. 完成数据源设置后,可以选择导入的数据方式,如“表”、“透视表”等,然后点击“确定”按钮。
5. 在弹出的“导入数据”对话框中,可以对导入的数据进行进一步筛选和排序等处理,然后点击“确定”按钮。
6. EXCEL将根据设置的参数,连接外部数据源,并将数据导入到当前工作表中。
7. 如果需要进行数据更新操作,在数据源发生变化时,可以选择“数据”选项卡中的“刷新全部”按钮来更新导入的数据。
三、外部数据连接的使用场景外部数据连接的使用场景多种多样,常见的应用包括以下几个方面:1. 数据库数据导入:通过与数据库建立连接,可以将数据库中的数据导入到EXCEL中,方便进行数据查询、统计和分析。
2. 文本文件数据导入:对于大量以文本形式存储的数据,可以通过外部数据连接将其导入到EXCEL中,进行进一步处理和整理。
DB与Excel相互转换的实现方法在实际工作中,常常需要把某些相关数据导入到DB(数据库)中,以便实现数据的共享与查询,如何利用已有的Excel数据已成为一个棘手问题;另外,由于Excel具有强大的数据处理和数据分析功能,也常需要将DB中的数据导入到Excel中进行相应地统计分析。
本文通过具体实例讨论了DB与Excel 之间实现相互转换的方法。
1 Excel与DB的相互转换软件开发工具为VB,数据库为Access。
VB是微软公司开发的、事件驱动的编程语言,具有强大的数据处理功能。
它提供了对多种数据库的访问方法,可以方便地访问SQL Server、Oracle、Access等数据库。
Access 是微软公司开发的基于Windows的桌面关系数据库管理系统。
它为建立功能完善的数据库管理系统提供了方便。
1.1 DB To Excel实现数据库表中数据自动转存到Excel表中。
例如,已有一文件名“AA.mdb”的Access数据库文件,该数据库中有一名为“番禺区农用地标准样地属性数据表”的数据表,数据表如图1所示。
在VB中,引用“Microsoft ActiveX Data Objects 2.6 Library”和“Microsoft Excel 11.0 Object Library”,即ADO对象和Excel对象。
通过ADO对象访问数据库实现DB到Excel的转换。
程序代码如下:Dim cnn As New ADODB.Connection '数据库连接对象Dim rs As New Recordset '记录集对象Dim VBExcel As Excel.Application '定义一个Excel应用Dim Excelbook As Excel.Workbook '定义一个Excel工作簿Dim ExcelSheet As Excel.Worksheet '定义一个Excel工作表Dim ExcelFilename As String'Excel文件名Dim TableName As String '数据库表名Dim s As StringDim i, j As IntegerDim row As Integer '记录数TableName = "番禺区农用地标准样地属性数据表"Set VBExcel = CreateObject("Excel.Application") '创建Excel对象Set Excelbook = VBExcel.Workbooks().Add '生成工作簿Set ExcelSheet = Excelbook.Worksheets("Sheet1") '生成工作表s = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\AA.mdb" '连接Access cnn.Open s '打开Accessrs.Open "select * from " & TableName, cnn'......统计记录数rs.MoveFirstDo While Not rs.EOFrow = row + 1rs.MoveNextLoopWith Excelbook.ActiveSheet'......Excel表中第1行存放字段名i = 1For j = 1 To rs.Fields.Count.Cells(i, j) = rs.Fields(j - 1).NameNext j'......Excel表中第2行开始存放记录rs.MoveFirstFor i = 1 To rowFor j = 1 To rs.Fields.Count.Cells(i + 1, j) = rs.Fields(j - 1).ValueNext jrs.MoveNextNext iEnd WithVBExcel.Application.Visible = TrueExcelbook.SaveAs App.Path & "\" & TableName '生成的Excel文件名与数据表文件名一致Set VBExcel = NothingSet Excelbook = NothingSet ExcelSheet = Nothing程序运行后,在当前应用所在路径下自动创建名为“番禺区农用地标准样地属性数据表”的Excel文件,实现了将Access数据库相应数据表中的数据自动导入到Excel表中,结果如图2所示。
Step 7 5.5 下DB数据块导入导出及DB当前值存储为默认值
1、导出DB数据块
打开一个DB块
生成源文件
输入文件名DB5,确认
选中你要导出的DB块
在Source> DB5>右键>导出源文件
在“导出源文件”对话框中确定源文件导出文件类型,选择“STL source (*.awl)”作为文件类型且文件名中必须包含扩展名“.AWL ”。
2、打开AWL文件
打开excel软件,在excel软件中选择打开命令(选择所有文件)
打开后选择全文,将对齐方式选择为“右对齐”
将修改好的文件另存为“.prn”的文件(保存的文件后缀名改一下 .prn > .awl)将“.awl”的文件导入到S7源文件中,编译通过即可。
保存的文件后缀名改一下.prn > .awl
3、将excel生成后的文件导入S7
Sources >插入新对象>外部文件选择刚才重命名的awl文件双击.awl
注意DB号,每句结束的; 保存编译,
没有出错的话,就导入导出完成.。
【任务3-8】将“Book3.accdb”中的数据表导出到Excel 工作表中
【任务描述】
将数据库“Book3.accdb”中的数据表“图书信息”导出到Excel电子表格“图书信息.xlsx”中。
【任务实施】
(1)启动Access 2010,打开数据库“Book3.accdb”。
(2)在导航窗格中,选择数据表“图书信息”。
(3)在【外部数据】选项卡的【导出】组中单击【Excel】命令按钮,如图3-38所示。
图3-38 【外部数据】选项卡的【导出】组的按钮
(4)打开【导出-Excel电子表格】对话框,如图3-39所示,在该对话框单击【浏览】按钮打开如图3-40所示的【保存文件】对话框。
图3-39 【导出-Excel电子表格】向导的“选择数据导出操作的目标”对话框
(5)在【保存文件】对话框中确定Excel电子表格的保存位置,输入新的文件名,然后单击【保存】按钮,返回到【导出-Excel电子表格】对话框。
1
图3-40 【保存文件】对话框
(6)在【导出-Excel电子表格】对话框选择“文件格式”,指定“导出选项”。
如果源对象是一个数据表或查询,还要确定导出数据时是否要带有格式。
(7)单击【确定】按钮,系统自动导出数据,数据导出完成后会提示“是否保存这些导出步骤”,如图3-41所示,如果需要保存导出步骤则单击复选框【保存导出步骤】即可,最后单击【关闭】按钮,完成导出操作。
图3-41 【导出-Excel电子表格】向导的“保存导出步骤”对话框
2。
数据导入与导出Excel中的外部数据连接技巧在处理大量数据时,Excel是一个非常强大的工具。
在Excel中,我们可以通过导入和导出外部数据来快速获取和整理数据。
本文将介绍一些数据导入与导出的技巧,帮助读者更好地利用Excel中的外部数据连接。
一、导入外部数据1. 打开Excel并新建一个工作表。
2. 点击“数据”选项卡,在“获取外部数据”组中选择“从其他来源”。
3. 在下拉菜单中选择合适的数据源,如“从文本文件”、“从Web”、“从SQL Server”等。
4. 根据数据源类型,按照相应的步骤进行配置和连接。
5. 选择要导入的数据,可以是整个文件,也可以是特定的表或查询结果。
6. 点击“导入”按钮,确认导入选项后,Excel将开始导入数据。
7. 根据需要可以对导入的数据进行一些处理和格式化。
二、导出外部数据1. 打开一个包含需要导出的数据的Excel工作簿。
2. 选择需要导出的数据区域。
3. 点击“文件”选项卡,在下拉菜单中选择“另存为”。
4. 在弹出的保存对话框中选择导出的目标文件类型,如CSV、文本文件、Access数据库等。
5. 根据文件类型的不同,进行相应的设置和配置,如选择字段分隔符、文本编码等。
6. 确认导出选项后,选择保存的路径和文件名。
7. 点击“保存”按钮,Excel将开始导出数据到所选的文件类型。
三、外部数据连接技巧1. 更新连接:在Excel中导入的外部数据连接是可以更新的。
在“数据”选项卡的“连接”组中,可以选择“刷新”按钮来更新连接的数据。
还可以设置刷新的时间间隔,实现自动刷新。
2. 数据筛选:导入外部数据后,可以使用Excel的数据筛选功能对数据进行筛选和排序,从而得到我们需要的结果。
3. 条件格式:利用条件格式能够根据自定义的规则对数据进行着色,帮助我们更好地理解和分析大量数据。
4. 公式计算:在Excel的导入数据中,可以使用各种公式和函数对数据进行计算和分析,从而得出更有意义的结果。
VBA中的数据导入导出技巧VBA(Visual Basic for Applications)是一种用于Microsoft Office系列应用程序自动化的编程语言。
在Excel中,VBA可以帮助用户实现各种自定义的数据导入导出操作,提高数据处理的效率和准确性。
本文将介绍一些VBA中的数据导入导出技巧,帮助您更好地处理Excel中的数据。
1. 数据导入技巧在VBA中,数据导入是指将外部数据源中的数据导入到Excel工作簿中。
以下是几种常用的数据导入技巧:1.1. 从文本文件导入数据通过VBA,您可以将文本文件中的数据导入到Excel中。
首先,您需要使用VBA的Open语句打开文本文件,然后使用VBA的Input语句将数据逐行读取到Excel工作表中。
您还可以使用Split函数将每行的数据拆分成多个单元格。
最后,使用VBA的Close语句关闭文本文件。
1.2. 从数据库导入数据VBA还可以连接到数据库,如Access、SQL Server等,将其中的数据导入到Excel中。
您可以使用VBA的ADODB对象创建数据库连接,执行SQL查询语句,将查询结果导入到Excel工作表中。
这样,您可以轻松地获取和分析数据库中的数据。
1.3. 从Web页面导入数据使用VBA,您可以模拟浏览器的操作,自动打开Web页面并将其中的数据导入到Excel中。
您可以使用VBA的IE对象创建浏览器实例,使用该实例打开Web页面,并使用VBA的getElementsByTag等方法查找和读取Web页面中的数据。
然后,您可以将这些数据导入到Excel工作表中进行进一步处理和分析。
2. 数据导出技巧除了将外部数据导入到Excel中,VBA还可以帮助您将Excel中的数据导出到其他文件格式,以满足特定的需求。
以下是几种常用的数据导出技巧:2.1. 导出为文本文件使用VBA,您可以将Excel中的数据导出为纯文本文件。
您可以使用VBA的Open语句创建文本文件,使用VBA的Write语句将数据逐行写入文本文件,并使用VBA的Close语句关闭文本文件。
Step 7 5.5 下DB数据块导入导出及DB当前值存储为默认值
导出
打开一个DB块
生成源文件
输入文件名DB5,确认
Simatic manager
Source> DB5>右键>导出源文件
新建一个excel文件
导入外部数据
按教程操作,注意导入完成后
最后的;不能少,否则编译时候会出错.
Begain
End_data_block
之间的数据可以删除
增加减少数据到你想要的数据
另存为prn格式
保存的文件后缀名改一下.prn > .awl
Sources >插入新对象>外部文件选择刚才重命名的awl文件
注意DB号,每句结束的; 保存编译,没有出错的话,就导入导出完成.
DB块的初始值传送给CPU 作为实际值Simatic manager View >oline 打开DB块
先保存,再生成源文件
选中DB
导出到文件夹Excel导入外部数据
BEGIN END_DATA_BLOCK 之间是当前数据
复制到对应区域.
在另存为prn ,改名awl ,导入, 打开, 保存编译. 注意,数据要建立得整齐一些.否则删除多余的;吧.。
博图V17中怎样导出DB数据块博图V17中导出DB数据块的三种方法:➢生成源文件➢生成XML 文件➢直接拷贝粘贴到Excel1.导出DB 块的三种方法1)生成源文件打开博途项目树,在DB 块上点击鼠标右键,在弹出的窗口中选择“从块生成源”->“仅所选的块”。
图1 选择从块生成源然后,输入要保存的源文件名,并点击保存键。
图2 保存生成的源文件2)生成XML 文件可以使用博途的版本控制接口来生成DB 块的XML 文件。
不单是DB 块,所有的软件块(OB、FC、FB、DB、背景DB 等)都可以生成XML 文件。
在博途项目树中选择“版本控制接口”->“新增工作区”:图3 新增工作区然后在打开新增的工作区“Workspace_1”,选择组态工作区图标:图4 组态工作区在弹出的窗口中设置工作区路径,如“D:\Work\”,点击确认。
图5 设置工作区路径鼠标左键选中需要导出的DB 块,然后拖拽到工作区中。
图6 拖拽DB 块到工作区中拖拽完成后可以看到工作区中的DB 块,以及文件夹中的XML 文件。
图7 工作区中的DB 块图8 文件夹中的XML 文件3)直接拷贝粘贴到ExcelDB 块中的内容也可以直接拷贝粘贴到Excel。
打开DB 块,点击下图中红圈的位置,选中DB 块内容,然后按快捷键“Ctrl+C”,拷贝DB 块内容。
图9 选择DB 块中要拷贝的内容打开一个空的Excel 文件,按快捷键“Ctrl+V”,粘贴DB 块内容到Excel 表格内。
图10 粘贴DB 块内容到Excel 表格。
DB与Excel相互转换的实现方法作者:徐彬来源:《电脑知识与技术》2009年第24期摘要:DB可以实现数据的共享与查询;Excel可以对数据进行处理与分析。
随着数据库技术和办公自动化技术的相互结合,急需解决两者之间的相互转换问题。
该文以实例探讨了DB与Excel实现相互转换的方法。
关键词:DB;Excel;相互转换中图分类号:TP317文献标识码:A文章编号:1009-3044(2009)24-6753-03Approach for Reciprocal Convertion on DB and ExcelXU Bin(Department of Computer and Information Technology, Nanjing Yingtian College, Nanjing 210046, China)Abstract: DB can achieve share and query of data;Excel may accomplish process and analyze of data.As combination of database technique and office automation technique,it is necessarily to solve the problem of their convertion.This paper gives example to discuss the methods of reciprocal convertion on DB and Excel.Key words: DB; Excel; reciprocal convertion在实际工作中,常常需要把某些相关数据导入到DB(数据库)中,以便实现数据的共享与查询,如何利用已有的Excel数据已成为一个棘手问题;另外,由于Excel具有强大的数据处理和数据分析功能,也常需要将DB中的数据导入到Excel中进行相应地统计分析。
快速导入导出数据的EXCEL技巧Excel是一款功能强大的电子表格软件,广泛应用于各个领域。
在工作和学习中,导入和导出数据是经常需要处理的任务之一。
本文将介绍一些快速导入导出数据的Excel技巧,帮助你高效完成相关工作。
1. 导入数据在Excel中导入数据可以让你轻松将外部数据引入到工作表中,以下是几种常见的导入数据的方法:a. 从文本文件导入:点击“数据”选项卡中的“从文本”按钮,选择要导入的文本文件,按照引导逐步进行设置,包括文件分隔符、数据格式等。
完成设置后,点击“导入”按钮即可将文本文件中的数据导入到Excel中。
b. 从数据库导入:如果你需要从数据库导入数据,可以使用Excel的“数据”选项卡中的“获取外部数据”功能。
选择适当的数据库驱动程序,并按照提示连接到数据库,然后选择要导入的数据表或查询结果。
最后,点击“导入”按钮完成导入过程。
c. 从Web导入:有时候你可能需要从Web页面上导入数据,Excel提供了“数据”选项卡中的“从Web”功能。
输入要导入的网页地址,点击“导航”按钮,选择需要导入的表格或数据,并点击“导入”按钮将数据导入到Excel中。
2. 导出数据导出数据是将Excel中的数据转移到其他文件格式或应用程序中,以下是几种常见的导出数据的方法:a. 导出为CSV文件:CSV文件是一种常用的文本文件格式,可以被多种应用程序识别。
在Excel中,你可以选择要导出的工作表,点击“文件”选项卡中的“另存为”按钮,选择“CSV(逗号分隔)”格式,然后按照提示设置文件名和保存位置,点击“保存”按钮即可将数据导出为CSV文件。
b. 导出为PDF文件:如果你需要将Excel中的工作表导出为PDF文件,可以点击“文件”选项卡中的“另存为”按钮,选择“PDF”格式,按照提示进行设置,包括文件名、页面范围等,然后点击“保存”按钮即可导出为PDF文件。
c. 导出为Word或PowerPoint文件:有时候你可能需要将Excel中的数据导出到Word或PowerPoint中进行进一步编辑和展示。
DB2中表快速导入EXCEL方法
(工具excel-2007)
1打开excel-2007 点击数据标签
2在下面的工具栏中选择自其它来源
3选择来自microsoft query
4在弹出的选择数据源中选择twhis(注意加*代表是sql server数据源,不加*号的是DB2数据源)
5在弹出的连接至DB2数据库窗口中,填写数据库名,用户名,密码
6在弹出的查询向导-选择列窗口中选择要导出的表名或是字段名单击‘>’
7在弹出的查询向导中为导出数据添加筛选条件选中列选择筛选条件
8在弹出的查询向导-排序顺序窗口中选择排序方式
9如果是简单的查询已经符合要求则为默认选项点击完成
10使用默认选项点击确定或是从新选定要插入数据的单元格位置
导入excel后结果图。
将数据从VisualBasic传输到Excel的方法INFO:将数据从 Visual Basic 传输到 Excel 的方法适用于概要本文介绍将数据从 Microsoft Visual Basic 应用程序传输到 Microsoft Excel 的多种方法。
本文还介绍了每种方法的优缺点,这样您可以选择最适合您的解决方案。
更多信息将数据传输到 Excel 工作簿最常用的方法是“自动化”功能。
“自动化”功能为您提供了指定数据在工作簿中所处位置的最大的灵活性,以及对工作簿进行格式设置和在运行时进行各种设置的功能。
利用“自动化”功能,您可以使用多种方法传输数据:逐单元格传输数据将数组中的数据传输到单元格区域使用 CopyFromRecordset 方法向单元格区域传输 ADO 记录集中的数据在 Excel 工作表上创建一个 QueryTable,它包含对 ODBC 或 OLEDB 数据源进行查询的结果。
将数据传输到剪贴板,然后将剪贴板内容粘贴到 Excel 工作表中。
您还可以使用一些其他方法将数据传输到 Excel,而不必使用“自动化”功能。
如果您正在运行服务器端应用程序,这是一种将批量数据处理从客户端移走的好方法。
在没有“自动化”功能的情况下,可以使用下列方法来传输数据:将数据传输到制表符分隔或逗号分隔的文本文件,然后 Excel 可以将该文本文件分析为工作表上的单元格使用 ADO 将数据传输到工作表使用动态数据交换 (DDE) 将数据传输到 Excel下面的部分提供了每种解决方案的详细信息。
使用“自动化”功能逐单元格传输数据利用“自动化”功能,您可以逐单元格地向工作表传输数据:Dim oExcel As ObjectDim oBook As ObjectDim oSheet As Object'Start a new workbook in ExcelSet oExcel = CreateObject("Excel.Application")Set oBook = oExcel.Workbooks.Add'Add data to cells of the first worksheet in the new workbookSet oSheet = oBook.Worksheets(1)oSheet.Range("A1").Value = "Last Name"oSheet.Range("B1").Value = "First Name"oSheet.Range("A1:B1").Font.Bold = TrueoSheet.Range("A2").Value = "Doe"oSheet.Range("B2").Value = "John"'Save the Workbook and Quit ExceloBook.SaveAs "C:\Book1.xls"oExcel.Quit如果数据量较少,逐单元格传输数据是一种完全可以接受的方法。
一、将DBGrid中的内容导出到Word文档//---------------------------------------------------------------------------// 将DBGrid中的数据导出到Word文档//---------------------------------------------------------------------------void __fastcall DBGrid2Word(TDBGrid *dbg, String strDocFile){if(!dbg->DataSource->DataSet->Active) // 数据集没有打开就返回return;Variant vWordApp, vTable, VCell;try{vWordApp = Variant::CreateObject("Word.Application");}catch(...){MessageBox(0, "启动 Word 出错, 可能是没有安装Word.","DBGrid2Word", MB_OK | MB_ICONERROR);vWordApp = Unassigned;return;}// 隐藏Word界面vWordApp.OlePropertySet("Visible", false);// 新建一个文档vWordApp.OlePropertyGet("Documents").OleFunction("Add");Variant vSelect = vWordApp.OlePropertyGet("Selection");// 设置一下字体,大小vSelect.OlePropertyGet("Font").OlePropertySet("Size", dbg->Font->Size);vSelect.OlePropertyGet("Font").OlePropertySet("Name", dbg->Font->Name.c_str());// 要插入表格的行数int nRowCount(dbg->DataSource->DataSet->RecordCount + 1);nRowCount = nRowCount < 2? 2: nRowCount;// 要插入表格的列数int nColCount(dbg->Columns->Count);nColCount = nColCount < 1? 1: nColCount;// 在Word文档中插入与DBGrid行数列数基本相同的一个表格vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add", vSelect.OlePropertyGet("Range"),nRowCount, // 行数nColCount, // 列数1, // DefaultTableBehavior:=wdWord9TableBehavior0); // AutoFitBehavior:=wdAutoFitFixed// 操作这个表格vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", 1);// 设置单元格的宽度for(int i=0; i<nColCount; i++){int nColWidth = dbg->Columns->Items[i]->Width;vTable.OlePropertyGet("Columns").OleFunction("Item", i + 1).OlePropertySet("PreferredWidthType", 3); // wdPreferredWidthPoints vTable.OlePropertyGet("Columns").OleFunction("Item", i + 1).OlePropertySet("PreferredWidth", nColWidth);}// 先将列名写入Word表格for(int j=0; j<dbg->Columns->Count; j++){vCell = vTable.OleFunction("Cell", 1, j + 1);vCell.OlePropertySet("Range", dbg->Columns->Items[j]->FieldName.c_str());// 列名单元格背景颜色 // wdColorGray125vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); }// 将DBGrid中的数据写入Word表格dbg->DataSource->DataSet->First();for(int i=0; i<nRowCount; i++){// 63 63 72 75 6E 2E 63 6F 6Dfor(int j=0; j<dbg->Columns->Count; j++){vCell = vTable.OleFunction("Cell", i + 2, j + 1);vCell.OlePropertySet("Range",dbg->DataSource->DataSet->FieldByName(dbg->Columns->Items[j]->FieldName)->AsString.c_str());}dbg->DataSource->DataSet->Next();}// 保存Word文档并退出vWordApp.OlePropertyGet("ActiveDocument").OleProcedure("SaveAs", strDocFile.c_str());vWordApp.OlePropertyGet("ActiveDocument").OleProcedure("Close");Application->ProcessMessages();vWordApp.OleProcedure("Quit");Application->ProcessMessages();vWordApp = Unassigned;// 工作结束MessageBox(0, "DBGrid2Word 转换结束!","DBGrid2Word", MB_OK | MB_ICONINFORMATION);}二、将DBGrid中的内容导出到Excel文档//---------------------------------------------------------------------------// 将DBGrid中的数据导出到Excel文档//---------------------------------------------------------------------------void __fastcall DBGrid2Excel(TDBGrid *dbg, String strXlsFile){if(!dbg->DataSource->DataSet->Active) // 数据集没有打开就返回return;Variant vExcelApp, vSheet;try{vExcelApp = Variant::CreateObject("Excel.Application");}catch(...){MessageBox(0, "启动 Excel 出错, 可能是没有安装Excel.","DBGrid2Excel", MB_OK |MB_ICONERROR);return;}// 隐藏Excel界面vExcelApp.OlePropertySet("Visible", false);// 新建一个工作表vExcelApp.OlePropertyGet("Workbooks").OleFunction("Add", 1); // 工作表// 操作这个工作表vSheet = vExcelApp.OlePropertyGet("ActiveWorkbook").OlePropertyGet("Sheets", 1);// 设置Excel文档的字体vSheet.OleProcedure("Select");vSheet.OlePropertyGet("Cells").OleProcedure("Select");vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Size",dbg->Font->Size);vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Name",dbg->Font ->Name.c_str());vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("FontStyle", "常规");vSheet.OlePropertyGet("Cells", 1, 1).OleProcedure("Select");// 表格的行数int nRowCount(dbg->DataSource->DataSet->RecordCount + 1);nRowCount = nRowCount < 2? 2: nRowCount;// 表格的列数int nColCount(dbg->Columns->Count);nColCount = nColCount < 1? 1: nColCount;// 设置单元格的宽度for(int i=0; i<nColCount; i++){int nColWidth = dbg->Columns->Items[i]->Width;vExcelApp.OlePropertyGet("Columns", i + 1).OlePropertySet("ColumnWidth", nColWidth / 7);}// 先将列名写入Excel表格for(int j=0; j<dbg->Columns->Count; j++){// 标题行的行高vExcelApp.OlePropertyGet("Rows", 1).OlePropertySet("RowHeight", 20);vSheet.OlePropertyGet("Cells", 1, j + 1).OlePropertySet("Value", dbg->Columns->Items[j]->FieldName.c_str());// 设置列名单元格的背景色Variant vInter = vSheet.OlePropertyGet( "Cells", 1, j + 1).OlePropertyGet("Interior");vInter.OlePropertySet("ColorIndex", 15); // 灰色vInter.OlePropertySet("Pattern", 1); // xlSolidvInter.OlePropertySet("PatternColorIndex", -4105); // xlAutomatic}// 将DBGrid中的数据写入Excel表格dbg->DataSource->DataSet->First();for(int i=0; i<nRowCount; i++){// 普通数据行的行高16vExcelApp.OlePropertyGet("Rows", i + 2).OlePropertySet("RowHeight", 16);// 63 63 72 75 6E 2E 63 6F 6Dfor(int j=0; j<dbg->Columns->Count; j++){vSheet.OlePropertyGet("Cells", i + 2, j + 1).OlePropertySet("Value",dbg->DataSource->DataSet->FieldByName(dbg->Columns->Items[j]->FieldName)->AsString.c_str());}dbg->DataSource->DataSet->Next();}// 保存Excel文档并退出vExcelApp.OlePropertyGet("ActiveWorkbook").OleFunction("SaveAs", strXlsFile.c_str());vExcelApp.OleFunction("Quit");vSheet = Unassigned;vExcelApp = Unassigned;// 工作结束MessageBox(0, "DBGrid2Excel 转换结束!","DBGrid2Excel", MB_OK | MB_ICONINFORMATION); }。
从DBGridEh控件导出Excel从DBGridEh控件导出Excel(收藏)1、调用(通过点击按钮直接导出Excel):procedure TForm3.Button2Click(Sender: TObject);varGridtoExcel: TDBGridEhToExcel;begintryGridtoExcel := TDBGridEhT oExcel.Create(nil);GridtoExcel.DBGridEh := DBGridEh1;GridtoExcel.TitleName := '收费明细表';GridtoExcel.ShowProgress := true;GridtoExcel.ShowOpenExcel := true;GridtoExcel.ExportToExcel;finallyGridtoExcel.Free;end;end;2、具体的导出函数unit Unit_DBGridEhToExcel;interfaceusesSysUtils, Variants, Classes, Graphics, Controls, Forms, Excel2000, ComObj,Dialogs, DB, DBGridEh, windows,ComCtrls,ExtCtrls;typeTDBGridEhToExcel = class(TComponent)privateFProgressForm: TForm; {进度窗体}FtempGauge: TProgressBar; {进度条}FShowProgress: Boolean; {是否显示进度窗体}FShowOpenExcel:Boolean; {是否导出后打开Excel文件}FDBGridEh: TDBGridEh;FTitleName: TCaption; {Excel文件标题} FUserName: TCaption; {制表人}procedure SetShowProgress(const Value: Boolean); {是否显示进度条}procedure SetShowOpenExcel(const Value: Boolean); {是否打开生成的Excel文件}procedure SetDBGridEh(const Value: TDBGridEh);procedure SetTitleName(const Value: TCaption); {标题名称}procedure SetUserName(const Value: TCaption); {使用人名称}procedure CreateProcessForm(AOwner: TComponent); {生成进度窗体}publicconstructor Create(AOwner: TComponent); override;destructor Destroy; override;procedure ExportT oExcel; {输出Excel文件}publishedproperty DBGridEh: TDBGridEh read FDBGridEh writeSetDBGridEh;property ShowProgress: Boolean read FShowProgress write SetShowProgress; //是否显示进度条property ShowOpenExcel: Boolean read FShowOpenExcel write SetShowOpenExcel; //是否打开Excelproperty TitleName: TCaption read FTitleName write SetTitleName;property UserName: TCaption read FUserName write SetUserName;end;implementationconstructor TDBGridEhToExcel.Create(AOwner: TComponent);begininherited Create(AOwner);FShowProgress := True;FShowOpenExcel:= True;end;procedure TDBGridEhToExcel.SetShowProgress(const Value: Boolean);beginFShowProgress := Value;end;procedure TDBGridEhT oExcel.SetDBGridEh(const Value: TDBGridEh);beginFDBGridEh := Value;end;procedure TDBGridEhT oExcel.SetTitleName(const Value: TCaption);beginFTitleName := Value;end;procedure TDBGridEhT oExcel.SetUserName(const Value: TCaption);beginFUserName := Value;end;function IsFileInUse(fName: string ): boolean;varHFileRes: HFILE;beginResult :=false;if not FileExists(fName) then exit;HFileRes :=CreateFile(pchar(fName), GENERIC_READor GENERIC_WRITE,0, nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);Result :=(HFileRes=INVALID_HANDLE_VALUE);if not Result thenCloseHandle(HFileRes);end;procedure TDBGridEhToExcel.ExportToExcel;XLApp: Variant;Sheet: Variant;s1, s2: string;Caption,Msg: String;Row, Col: integer;iCount, jCount: Integer;FBookMark: TBookmark;FileName: String;SaveDialog1: TSaveDialog;begin//如果数据集为空或没有打开则退出if not DBGridEh.DataSource.DataSet.Active then Exit;SaveDialog1 := TSaveDialog.Create(Nil);SaveDialog1.FileName := TitleName + '_' + FormatDateTime('YYMMDDHHmmSS', now);SaveDialog1.Filter := 'Excel文件|*.xls';if SaveDialog1.Execute thenFileName := SaveDialog1.FileName;SaveDialog1.Free;if FileName = '' then Exit;while IsFileInUse(FileName) dobeginif Application.MessageBox('目标文件使用中,请退出目标文件后点击确定继续!','注意', MB_OKCANCEL + MB_ICONWARNING) = IDOK then beginelsebeginExit;end;end;if FileExists(FileName) thenbeginMsg := '已存在文件(' + FileName + '),是否覆盖?';if Application.MessageBox(PChar(Msg), '提示', MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES then begin//删除文件DeleteFile(PChar(FileName))endelseexit;end;Application.ProcessMessages;Screen.Cursor := crHourGlass;//显示进度窗体if ShowProgress thenCreateProcessForm(nil);if not VarIsEmpty(XLApp) thenbeginXLApp.DisplayAlerts := False;XLApp.Quit;VarClear(XLApp);end;//通过ole创建Excel对象tryXLApp := CreateOleObject('Excel.Application');exceptMessageDlg('创建Excel对象失败,请检查你的系统是否正确安装了Excel软件!', mtError, [mbOk], 0);Screen.Cursor := crDefault;Exit;end;//生成工作页XLApp.WorkBooks.Add[XLWBatWorksheet];XLApp.WorkBooks[1].WorkSheets[1].Name := TitleName;Sheet := XLApp.Workbooks[1].WorkSheets[TitleName];//写标题sheet.cells[1, 1] := TitleName;sheet.range[sheet.cells[1, 1], sheet.cells[1, DBGridEh.Columns.Count]].Select; //选择该列XLApp.selection.HorizontalAlignment := $FFFFEFF4; //居中XLApp.selection.MergeCells := True; //合并//写表头Row := 1;jCount := 3;for iCount := 0 to DBGridEh.Columns.Count - 1 dobeginCol := 2;Row := iCount+1;Caption := DBGridEh.Columns[iCount].Title.Caption;while POS('|', Caption) > 0 dobeginjCount := 4;s1 := Copy(Caption, 1, Pos('|',Caption)-1);if s2 = s1 thenbeginsheet.range[sheet.cells[Col, Row-1],sheet.cells[Col, Row]].Select;XLApp.selection.HorizontalAlignment := $FFFFEFF4;XLApp.selection.MergeCells := True;endelseSheet.cells[Col,Row] := Copy(Caption, 1, Pos('|',Caption)-1);Caption := Copy(Caption,Pos('|', Caption)+1, Length(Caption));Inc(Col);s2 := s1;end;Sheet.cells[Col, Row] := Caption;Inc(Row);end;//合并表头并居中if jCount = 4 thenfor iCount := 1 to DBGridEh.Columns.Count doif Sheet.cells[3, iCount].Value = '' thenbeginsheet.range[sheet.cells[2, iCount],sheet.cells[3, iCount]].Select;XLApp.selection.HorizontalAlignment := $FFFFEFF4;XLApp.selection.MergeCells := True;endelse beginsheet.cells[3, iCount].Select;XLApp.selection.HorizontalAlignment := $FFFFEFF4;end;//读取数据DBGridEh.DataSource.DataSet.DisableControls;FBookMark := DBGridEh.DataSource.DataSet.GetBookmark;DBGridEh.DataSource.DataSet.First;while not DBGridEh.DataSource.DataSet.Eof dobeginfor iCount := 1 to DBGridEh.Columns.Count dobegin//Sheet.cells[jCount,iCount] :=DBGridEh.Columns.Items[iCount-1].Field.AsString;caseDBGridEh.DataSource.DataSet.FieldByName(DBGridEh.Columns. Items[iCount-1].FieldName).DataType offtSmallint, ftInteger, ftWord, ftAutoInc, ftBytes:Sheet.cells[jCount,iCount] :=DBGridEh.Columns.Items[iCount-1].Field.asinteger;ftFloat, ftCurrency, ftBCD:Sheet.cells[jCount,iCount] :=DBGridEh.Columns.Items[iCount-1].Field.AsFloat;elseifDBGridEh.DataSource.DataSet.FieldByName(DBGridEh.Columns. Items[iCount-1].FieldName) is TBlobfield then // 此类型的字段(图像等)暂无法读取显示Sheet.cells[jCount,iCount] :=DBGridEh.Columns.Items[iCount-1].Field.AsString elseSheet.cells[jCount,iCount] :=''''+DBGridEh.Columns.Items[iCount-1].Field.AsString;end;end;Inc(jCount);//显示进度条进度过程if ShowProgress thenbeginFtempGauge.Position := DBGridEh.DataSource.DataSet.RecNo;FtempGauge.Refresh;end;DBGridEh.DataSource.DataSet.Next;end;if DBGridEh.DataSource.DataSet.BookmarkValid(FBookMark)thenDBGridEh.DataSource.DataSet.GotoBookmark(FBookMark);DBGridEh.DataSource.DataSet.EnableControls;//读取表脚if DBGridEh.FooterRowCount > 0 thenbeginfor Row := 0 to DBGridEh.FooterRowCount-1 dobeginfor Col := 0 to DBGridEh.Columns.Count-1 doSheet.cells[jCount, Col+1] := DBGridEh.GetFooterValue(Row,DBGridEh.Columns[Col]);Inc(jCount);end;end;//调整列宽// for iCount := 1 to DBGridEh.Columns.Count do// Sheet.Columns[iCount].EntireColumn.AutoFit;sheet.cells[1, 1].Select;XlApp.Workbooks[1].SaveAs(FileName);XlApp.Visible := True;XlApp := Unassigned;if ShowProgress thenFreeAndNil(FProgressForm);Screen.Cursor := crDefault;end;destructor TDBGridEhToExcel.Destroy;begininherited Destroy;end;procedure TDBGridEhT oExcel.CreateProcessForm(AOwner: TComponent);varPanel: TPanel;beginif Assigned(FProgressForm) thenexit;FProgressForm := TForm.Create(AOwner);with FProgressForm dobegintry := '宋体'; {设置字体}Font.Size := 10;BorderStyle := bsNone;Width := 300;Height := 30;BorderWidth := 1;Color := clBlack;Position := poScreenCenter;Panel := TPanel.Create(FProgressForm);with Panel dobeginParent := FProgressForm;Align := alClient;Caption := '正在导出Excel,请稍候......';Color:=$00E9E5E0;end;FtempGauge:=TProgressBar.Create(Panel);with FtempGauge dobeginParent := Panel;Align:=alClient;Min := 0;Max:= DBGridEh.DataSource.DataSet.RecordCount;Position := 0;end;exceptend;end;FProgressForm.Show;FProgressForm.Update;end;procedure TDBGridEhT oExcel.SetShowOpenExcel(const Value: Boolean);beginFShowOpenExcel:=Value;end;end.用法:先新建一个单元文件比如Unit_DBGridEhToExcel.pas,然后再在工程里面引用这个文件,再直接通过一个按钮事件调用就可以了。
DB2中表快速导入EXCEL方法
(工具excel-2007)
1打开excel-2007 点击数据标签
2在下面的工具栏中选择自其它来源
3选择来自microsoft query
4在弹出的选择数据源中选择twhis(注意加*代表是sql server数据源,不加*号的是DB2数据源)
5在弹出的连接至DB2数据库窗口中,填写数据库名,用户名,密码
6在弹出的查询向导-选择列窗口中选择要导出的表名或是字段名单击‘>’
7在弹出的查询向导中为导出数据添加筛选条件选中列选择筛选条件
8在弹出的查询向导-排序顺序窗口中选择排序方式
9如果是简单的查询已经符合要求则为默认选项点击完成
10使用默认选项点击确定或是从新选定要插入数据的单元格位置
导入excel后结果图。
如何把DB块中的数据导入Excel中
分为下面几步:
1:首先安装"打印到文件"的打印机驱动
2:把DB块的数据打印到文件
3:从Excel中导入打印的文件
详细的操作过程原文如下:
How to install the "print to file" driver in Windows
------------------------------------------------
- in Windows' taskbar, select "setting" menu, then select "printers"
- click on "install new printer"
- select "local printer"
- from the manufacturers list, select "generic" (generic/text only)
- when assigning the printer port, select "file"
- finish installing the printer
- now in the "printer" folder, you have the "Generic/text only" printer
- select "Generic/text only" printer, click with right-mouse button and select "properties" - on the "properties", select the "paper" tab
- scroll all the paper sizes and select "user-defined size"
- assign the largest possible values (this ensures no carriage returns when printing
long Datablock vars and comments)
- in "Paper source" list, assign "continuous, no page break"
- click "Ok" and terminate.
How to print a datablock to file
---------------------------------
- open your datablock in Step7 editor
- chose "view" menu and select "data view" (this ensure address to be printed for each variable).
- From the "file" menu, select "print setup"
- select "Generic/text only" printer and "user defined size".
- From the "file" menu, select "print" (there is no need to select the "print to file" checkbox of the dialog window).
- press "Ok" ant type the name of the file to be output.
- start the printing
How to import the file to Excel
-------------------------------
- open the printed file with any editor
- remove all the pages header and footer that the Step7 editor has added (I think there
is no way to avoid them to be printed...)
- save the file
- open Excel and open the file
- Excel displays a window where you can assign the data separators
- select "fixed width" and go to next step
- move the first limit to just before the variables name
- leave the second limit at the beginning of the data type
- add a new limit after 4 chars (this limits the data type to be displayed with
four chars only)
- add a new limit just before the variables comment.
- go to next steps and have the file imported
- from Excel spreadsheet you may have to delete the "values" column, but this is a minor problem。