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

<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">我们经常在写程序的时候,发现需要考虑数据导入,特别是<span style="font-family: Times New Roman;">Excel</span>
<span style="">导入、导出。有些人也许会说,这有什么难的!</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">是的,确实不难!</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">使用<span style="font-family: Times New Roman;">Office</span>
<span style="">的自动化对象,可以很方便操作程序写入。不过这种方式往往比较慢。也可以使用特定的控件进行读写,比如</span>
<span style="font-family: Times New Roman;">XLSReadWrite</span>
<span style="">就是一个非常好有名的控件,最新的更新,已经可以支持</span>
<span style="font-family: Times New Roman;">EXCEL2007</span>
<span style="">了。</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">不过我感觉还是很麻烦。而且这里面还有增加很多不需要的组件的引用。特别是,如果客户的机器上没有安装<span style="font-family: Times New Roman;">Office</span>
<span style="">怎么办呢?(虽然这几乎不可能,但是很多服务器上确实不安装。)</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">我一开始想到这个问题就头痛。而且我还考虑到是否也要支持多种格式导入,比如<span style="font-family: Times New Roman;">TXT</span>
<span style="">文件、</span>
<span style="font-family: Times New Roman;">ACCESS</span>
<span style="">文件等等,但我最后决定谁也不支持,就支持一个:剪贴板。</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">从<span style="font-family: Times New Roman;">EXCEL</span>
<span style="">或者很多表格控件中,都支持复制到剪贴板。我们只需要考虑获取这个文本,就可以直接得到需要导入的数据。而这个数据格式又是非常公开标准的。中间省去了很多数据引擎。也不需要什么</span>
<span style="font-family: Times New Roman;">ADO</span>
<span style="">,也不需要什么</span>
<span style="font-family: Times New Roman;">Office</span>
<span style="">。</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">关于剪贴板的编程,我在这里就不累赘了,相信很多人都理解。不过我想简单说一些这个数据结构。其实一般我们复制一个矩形区域的时候,返回回来的文本,其实就是一个使用<span style="font-family: Times New Roman;">TAB</span>
<span style="">键和回车换行符分割的文本数组。这样我们只需要将这些数据写到一个</span>
<span style="font-family: Times New Roman;">Grid</span>
<span style="">控件中,用户就可以自由选择和匹配列数据了。</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">我基于这个设计,加上一个可以粘贴数据的<span style="font-family: Times New Roman;">Grid</span>
<span style="">窗体,就很简单的写出了一个导入数据的功能,而且这个功能非常独立,可以使用到很多地方。</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">反过来,要将系统中的数据读出来的话,其实支持一下复制到剪贴板也是一个非常好好的选择。这样用户可以自由选择目标格式文件。</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">当然了,剪贴板这种形式也是有很多弊端的。因为只使用文本这种标准格式,所以,如果我们在导入导出过程中,需要控制或者获取有关格式信息的话,就不合适了。比如<span style="font-family: Times New Roman;">EXCEL</span>
<span style="">排版等等,就需要专业的</span>
<span style="font-family: Times New Roman;">EXCEL</span>
<span style="">控件来操作了。</span>
</span>

</p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: '宋体';">希望一点小技巧,能够给你带来些许启示。</span>

</p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值