我们经常在写程序的时候,发现需要考虑数据导入,特别是Excel
导入、导出。有些人也许会说,这有什么难的!
是的,确实不难!
使用Office
的自动化对象,可以很方便操作程序写入。不过这种方式往往比较慢。也可以使用特定的控件进行读写,比如
XLSReadWrite
就是一个非常好有名的控件,最新的更新,已经可以支持
EXCEL2007
了。
不过我感觉还是很麻烦。而且这里面还有增加很多不需要的组件的引用。特别是,如果客户的机器上没有安装Office
怎么办呢?(虽然这几乎不可能,但是很多服务器上确实不安装。)
我一开始想到这个问题就头痛。而且我还考虑到是否也要支持多种格式导入,比如TXT
文件、
ACCESS
文件等等,但我最后决定谁也不支持,就支持一个:剪贴板。
从EXCEL
或者很多表格控件中,都支持复制到剪贴板。我们只需要考虑获取这个文本,就可以直接得到需要导入的数据。而这个数据格式又是非常公开标准的。中间省去了很多数据引擎。也不需要什么
ADO
,也不需要什么
Office
。
关于剪贴板的编程,我在这里就不累赘了,相信很多人都理解。不过我想简单说一些这个数据结构。其实一般我们复制一个矩形区域的时候,返回回来的文本,其实就是一个使用TAB
键和回车换行符分割的文本数组。这样我们只需要将这些数据写到一个
Grid
控件中,用户就可以自由选择和匹配列数据了。
我基于这个设计,加上一个可以粘贴数据的Grid
窗体,就很简单的写出了一个导入数据的功能,而且这个功能非常独立,可以使用到很多地方。
反过来,要将系统中的数据读出来的话,其实支持一下复制到剪贴板也是一个非常好好的选择。这样用户可以自由选择目标格式文件。
当然了,剪贴板这种形式也是有很多弊端的。因为只使用文本这种标准格式,所以,如果我们在导入导出过程中,需要控制或者获取有关格式信息的话,就不合适了。比如EXCEL
排版等等,就需要专业的
EXCEL
控件来操作了。
希望一点小技巧,能够给你带来些许启示。
分享到:
相关推荐
2. **剪贴板API**:操作系统提供了剪贴板相关的API(Application Programming Interface),允许程序员通过这些接口读取和写入剪贴板数据。例如,在Windows中,我们可以使用`OpenClipboard`、`EmptyClipboard`、`...
`Toolkit.getDefaultToolkit()`可以获取系统默认的工具包,而`Clipboard`接口则是剪贴板操作的主要接口,可以通过`Toolkit.getSystemClipboard()`获取系统剪贴板。 1. **设置剪贴板内容** 要向剪贴板设置数据,你...
这需要实现`java.awt.datatransfer.FlavorTarget`接口并注册到剪贴板上,以便在数据交换时进行适当的转换。 在实际应用中,`JClipboardDemo`这样的程序通常会包含一个完整的示例,展示如何创建一个简单的GUI,用户...
用户运行这个.VBS文件后,脚本会读取指定的文本数据并将其存入系统剪贴板,用户可以随时粘贴到其他应用程序中。 总的来说,这个压缩包提供了一种自动化复制文本到剪贴板的方法,对于需要频繁复制相同文本的用户来说...
在IT领域,剪贴板是操作系统提供的一种基础功能,它允许用户临时存储和转移数据,如文本、图像等。位图(Bitmap)是常见的图像文件格式,广泛应用于各种图形编辑软件和操作系统中。本篇文章将深入探讨如何显示并存储...
首先,剪贴板操作通常涉及到API(应用程序编程接口),如在Windows系统中的Win32 API或在跨平台环境中的Qt、JavaFX等框架提供的API。这些API允许开发者读取、写入和管理剪贴板上的数据。 1. **Win32 API**:在...
在Android开发中,剪贴板(Clipboard)是一个重要的功能组件,它允许应用程序之间共享文本、图片等数据。Java是Android开发的主要编程语言,因此编写一个Java demo来监听剪贴板的变化,可以帮助开发者检测用户是否在...
在Windows编程中,剪贴板是应用程序之间交换数据的一个常用机制。VC6.0是Microsoft Visual C++ 6.0的简称,这是一个经典的集成开发环境,用于编写C++程序。本示例源代码将帮助我们理解如何在VC6.0环境下使用C++操作...
剪贴板操作通常涉及Windows API(应用程序接口)调用,易语言也不例外。在易语言中,通过调用特定的API函数,我们可以实现对剪贴板内容的读取和设置。这个压缩包中的源码可能包含以下关键知识点: 1. **API调用**:...
在PB9中,可以调用`pbclipboard`的`GetAsBitmap()`方法来获取剪贴板上的图像,并将其转换为位图对象。然后,可以利用PowerBuilder的图形库功能,如`SaveBitmap()`方法,将位图对象保存到磁盘上的特定文件格式,如BMP...
在VB(Visual Basic)编程中,使用Windows剪贴板是一种常见的数据交换方法,尤其是在处理文本、图像和其他形式的数据时。Windows剪贴板是操作系统提供的一种全局共享存储区域,允许应用程序之间临时存储和传递数据。...
首先通过import语句导入了必要的模块:win32clipboard模块用于操作剪贴板,win32con模块包含了一些常量定义,PIL库中的Image模块用于图像的加载和转换,而StringIO模块则用于在内存中读写字符串数据。 程序定义了一...
例如,要设置剪贴板的数据,可以使用`SetClipboardData`函数,将文本数据转换为全局内存对象,然后传递给该函数。 4. **复制操作**: 要实现复制文本到剪贴板,首先需要创建一个全局内存对象,存储待复制的文本,...
Windows操作系统提供了丰富的API接口,其中包括用于读取和修改剪贴板内容的函数。在易语言中,我们可以调用这些API函数,通过编写相应的程序代码来实现对剪贴板的拦截。 首先,我们需要了解几个关键的API函数: 1. ...
这会返回一个`IDataObject`接口实例,包含了剪贴板上所有可用的数据格式。然后,我们可以通过调用`GetData`方法并指定数据格式来获取数据。例如,如果我们要获取剪贴板上的文本数据,可以这样做: ```csharp using ...
在编程中,特别是在Windows操作系统环境下,开发者经常使用API(应用程序接口)来实现剪贴板监视功能。Q693208问题似乎涉及到了这个主题,但具体的问题细节未在描述中给出,我们只能基于剪贴板监视的一般概念进行...
VB程序需要根据剪贴板上当前的数据类型进行适当的转换和处理。 总的来说,这个VB程序通过API调用来实现对剪贴板内容的实时监控和显示,提供了用户友好的界面来查看剪贴板的变化。对于学习VB编程和剪贴板操作的...
1. **剪贴板API**:易语言提供了对Windows API的调用接口,开发者可以通过这些接口操作剪贴板,如打开、关闭剪贴板,设置或获取剪贴板数据等。 2. **CF_HTML格式**:理解和解析CF_HTML格式的数据,通常需要处理包含...
- 在Google Earth中选中基站的扇区信息,通过右键菜单中的复制功能将其复制到剪贴板。 - 将复制的信息粘贴到一个新建的TXT文件中,保存以便下一步使用。 **步骤2:使用转换工具进行转换** - 启动KML文件转换工具,...
是否有数据()`函数检查剪贴板是否包含数据,再通过`系统剪贴板.数据类型存在()`函数确认数据类型是否为位图。 5. 显示图像:获取到位图后,我们通常需要将其显示在易语言创建的窗口上。这可以通过创建窗口控件,如...