`
ruilin215
  • 浏览: 1151964 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

数据转换接口的怪妙招--剪贴板

阅读更多

我们经常在写程序的时候,发现需要考虑数据导入,特别是Excel 导入、导出。有些人也许会说,这有什么难的!

是的,确实不难!

使用Office 的自动化对象,可以很方便操作程序写入。不过这种方式往往比较慢。也可以使用特定的控件进行读写,比如 XLSReadWrite 就是一个非常好有名的控件,最新的更新,已经可以支持 EXCEL2007 了。

不过我感觉还是很麻烦。而且这里面还有增加很多不需要的组件的引用。特别是,如果客户的机器上没有安装Office 怎么办呢?(虽然这几乎不可能,但是很多服务器上确实不安装。)

我一开始想到这个问题就头痛。而且我还考虑到是否也要支持多种格式导入,比如TXT 文件、 ACCESS 文件等等,但我最后决定谁也不支持,就支持一个:剪贴板。

EXCEL 或者很多表格控件中,都支持复制到剪贴板。我们只需要考虑获取这个文本,就可以直接得到需要导入的数据。而这个数据格式又是非常公开标准的。中间省去了很多数据引擎。也不需要什么 ADO ,也不需要什么 Office

关于剪贴板的编程,我在这里就不累赘了,相信很多人都理解。不过我想简单说一些这个数据结构。其实一般我们复制一个矩形区域的时候,返回回来的文本,其实就是一个使用TAB 键和回车换行符分割的文本数组。这样我们只需要将这些数据写到一个 Grid 控件中,用户就可以自由选择和匹配列数据了。

我基于这个设计,加上一个可以粘贴数据的Grid 窗体,就很简单的写出了一个导入数据的功能,而且这个功能非常独立,可以使用到很多地方。

反过来,要将系统中的数据读出来的话,其实支持一下复制到剪贴板也是一个非常好好的选择。这样用户可以自由选择目标格式文件。

当然了,剪贴板这种形式也是有很多弊端的。因为只使用文本这种标准格式,所以,如果我们在导入导出过程中,需要控制或者获取有关格式信息的话,就不合适了。比如EXCEL 排版等等,就需要专业的 EXCEL 控件来操作了。

希望一点小技巧,能够给你带来些许启示。

分享到:
评论

相关推荐

    商业编程-源码-剪贴板源代码 PasteFNames_demo.zip

    2. **剪贴板API**:操作系统提供了剪贴板相关的API(Application Programming Interface),允许程序员通过这些接口读取和写入剪贴板数据。例如,在Windows中,我们可以使用`OpenClipboard`、`EmptyClipboard`、`...

    java操作剪贴板

    `Toolkit.getDefaultToolkit()`可以获取系统默认的工具包,而`Clipboard`接口则是剪贴板操作的主要接口,可以通过`Toolkit.getSystemClipboard()`获取系统剪贴板。 1. **设置剪贴板内容** 要向剪贴板设置数据,你...

    Java 利用剪贴板交换程序间数据

    这需要实现`java.awt.datatransfer.FlavorTarget`接口并注册到剪贴板上,以便在数据交换时进行适当的转换。 在实际应用中,`JClipboardDemo`这样的程序通常会包含一个完整的示例,展示如何创建一个简单的GUI,用户...

    BAT批处理脚本-文本操作-将文本复制到剪贴板.zip

    用户运行这个.VBS文件后,脚本会读取指定的文本数据并将其存入系统剪贴板,用户可以随时粘贴到其他应用程序中。 总的来说,这个压缩包提供了一种自动化复制文本到剪贴板的方法,对于需要频繁复制相同文本的用户来说...

    显示并存储剪贴板中的位图

    在IT领域,剪贴板是操作系统提供的一种基础功能,它允许用户临时存储和转移数据,如文本、图像等。位图(Bitmap)是常见的图像文件格式,广泛应用于各种图形编辑软件和操作系统中。本篇文章将深入探讨如何显示并存储...

    完整版自定义剪贴板数据类型的应用(API).e.rar

    首先,剪贴板操作通常涉及到API(应用程序编程接口),如在Windows系统中的Win32 API或在跨平台环境中的Qt、JavaFX等框架提供的API。这些API允许开发者读取、写入和管理剪贴板上的数据。 1. **Win32 API**:在...

    监听剪贴板Java demo

    在Android开发中,剪贴板(Clipboard)是一个重要的功能组件,它允许应用程序之间共享文本、图片等数据。Java是Android开发的主要编程语言,因此编写一个Java demo来监听剪贴板的变化,可以帮助开发者检测用户是否在...

    写入和获取剪贴板中的数据VC6.0源代码

    在Windows编程中,剪贴板是应用程序之间交换数据的一个常用机制。VC6.0是Microsoft Visual C++ 6.0的简称,这是一个经典的集成开发环境,用于编写C++程序。本示例源代码将帮助我们理解如何在VC6.0环境下使用C++操作...

    易语言源码易语言取剪贴板非文本数据.rar

    剪贴板操作通常涉及Windows API(应用程序接口)调用,易语言也不例外。在易语言中,通过调用特定的API函数,我们可以实现对剪贴板内容的读取和设置。这个压缩包中的源码可能包含以下关键知识点: 1. **API调用**:...

    PB剪贴板取图保存,拖拽粘贴文件

    在PB9中,可以调用`pbclipboard`的`GetAsBitmap()`方法来获取剪贴板上的图像,并将其转换为位图对象。然后,可以利用PowerBuilder的图形库功能,如`SaveBitmap()`方法,将位图对象保存到磁盘上的特定文件格式,如BMP...

    使用 windows 剪贴板(16KB)...

    在VB(Visual Basic)编程中,使用Windows剪贴板是一种常见的数据交换方法,尤其是在处理文本、图像和其他形式的数据时。Windows剪贴板是操作系统提供的一种全局共享存储区域,允许应用程序之间临时存储和传递数据。...

    使用python 将图片复制到系统剪贴中

    首先通过import语句导入了必要的模块:win32clipboard模块用于操作剪贴板,win32con模块包含了一些常量定义,PIL库中的Image模块用于图像的加载和转换,而StringIO模块则用于在内存中读写字符串数据。 程序定义了一...

    VB 源码 剪贴板操作

    例如,要设置剪贴板的数据,可以使用`SetClipboardData`函数,将文本数据转换为全局内存对象,然后传递给该函数。 4. **复制操作**: 要实现复制文本到剪贴板,首先需要创建一个全局内存对象,存储待复制的文本,...

    易语言拦截剪贴板的数据-易语言

    Windows操作系统提供了丰富的API接口,其中包括用于读取和修改剪贴板内容的函数。在易语言中,我们可以调用这些API函数,通过编写相应的程序代码来实现对剪贴板的拦截。 首先,我们需要了解几个关键的API函数: 1. ...

    C#发送数据到剪贴板及从剪贴板中取数据的方法

    这会返回一个`IDataObject`接口实例,包含了剪贴板上所有可用的数据格式。然后,我们可以通过调用`GetData`方法并指定数据格式来获取数据。例如,如果我们要获取剪贴板上的文本数据,可以这样做: ```csharp using ...

    Q693208问题的回答,剪贴板监视

    在编程中,特别是在Windows操作系统环境下,开发者经常使用API(应用程序接口)来实现剪贴板监视功能。Q693208问题似乎涉及到了这个主题,但具体的问题细节未在描述中给出,我们只能基于剪贴板监视的一般概念进行...

    vb编写的查看剪贴板的程序_vb怎么编写计算器程序

    VB程序需要根据剪贴板上当前的数据类型进行适当的转换和处理。 总的来说,这个VB程序通过API调用来实现对剪贴板内容的实时监控和显示,提供了用户友好的界面来查看剪贴板的变化。对于学习VB编程和剪贴板操作的...

    易语言-易语言剪贴板网页数据源码 (CF_HTML, HTML Format)

    1. **剪贴板API**:易语言提供了对Windows API的调用接口,开发者可以通过这些接口操作剪贴板,如打开、关闭剪贴板,设置或获取剪贴板数据等。 2. **CF_HTML格式**:理解和解析CF_HTML格式的数据,通常需要处理包含...

    KML文件转换工具

    - 在Google Earth中选中基站的扇区信息,通过右键菜单中的复制功能将其复制到剪贴板。 - 将复制的信息粘贴到一个新建的TXT文件中,保存以便下一步使用。 **步骤2:使用转换工具进行转换** - 启动KML文件转换工具,...

    易语言从剪切板取图片

    是否有数据()`函数检查剪贴板是否包含数据,再通过`系统剪贴板.数据类型存在()`函数确认数据类型是否为位图。 5. 显示图像:获取到位图后,我们通常需要将其显示在易语言创建的窗口上。这可以通过创建窗口控件,如...

Global site tag (gtag.js) - Google Analytics