Office中国论坛/Access中国论坛

标题: “没有脚的鸟”——API自定义路径导入导出数据 [打印本页]

作者: roych    时间: 2012-4-3 20:47
标题: “没有脚的鸟”——API自定义路径导入导出数据
本帖最后由 roych 于 2015-5-15 16:43 编辑

       “我听别人说这世界上有一种鸟是没有脚的,它只能够一直地飞呀飞呀, 飞累了就在风里面睡觉,这种鸟一辈子只能下地一次,那一次就是它死亡的时候。”
    记得第一次看《阿飞正传》时,就被这一句台词所打动了。也许骨子里一直流淌着这种不安分的血液吧,当时很羡慕这种没有脚的鸟,以为这就是我想要的自由。然而多年以后的今天才知道,那只鸟的自由翱翔,恰恰返照出它的无奈。在那些风雨交加的日子里,拣尽寒枝不能歇的它,仿若无根的浮萍,又拿什么来谈自由呢?世上终究没有绝对的自由,所有自由都是要付出代价的,不是么?
    在哥哥逝世九周年之际,提及这部电影,也算是一种缅怀吧。

    而说到自由,则是因为最近一个同事问及如何自定义路径导出数据的问题。开始是用FileDialog对象去写,不过因为Office库的版本问题,效果并不太好,后来便考虑用API函数来处理。
    通过获取路径进行导入是很简单的,声明API函数GetOpenFileNameA后,再处理好打开文件夹对话框界面即可。而对于导出,则相对麻烦些,因为往往要先赋以一个默认值,否则很容易出错。而我所做的,也就是把这两者合二为一而已。

    其它说明:
    1、为了简化函数,模块仅仅支持Excel文件(*.xls)。如需要多种选择,则需要进一步改进里面的strFilter属性。
    2、大家在测试时应该先导出数据,再以该文件为数据源进行导入,这是因为导入和导出字段结构相同的缘故。
[attach]56319[/attach]******************************************************************************************
2015-5-15更新:
增加2007格式的导入导出。
注:导入是没问题的。不过,由于Office 2007(当然包括Access 2007了)采用新的Office Open XML 文件格式,如果导出为2003格式,打开时出现提示是正常的,但不会影响数据的显示。如果试图避免这个问题,可能需要在用户端安装一些插件。http://www.microsoft.com/china/msdn/library/office/office/OfficeOpenXMLFormats.mspx?mfr=true

  [attach]55782[/attach]
  [attach]55781[/attach]


作者: ycxchen    时间: 2012-4-6 10:44
学习!
作者: yanwei82123300    时间: 2012-12-11 20:13
谢谢分享{:soso_e179:}
作者: xxzx5    时间: 2015-3-3 23:56
{:soso_e179:}
作者: 十三    时间: 2015-5-14 17:27
请问一下,如果我临时取消导入或导出 会弹出一个错误对话框,如何解决呀?另如果想导入2007以上版本的excel 呢?
作者: roych    时间: 2015-5-15 16:44
十三 发表于 2015-5-14 17:27
请问一下,如果我临时取消导入或导出 会弹出一个错误对话框,如何解决呀?另如果想导入2007以上版本的excel ...

在2007版上已增加错误处理,但用2007版导出2003版excel文件时,会提示文件扩展名不一致。
作者: jsjtyjp_001    时间: 2017-3-18 15:41
学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3