首页 > 单独文章 > 正文

从Linux系统中读取EXCEL文件

时间:2009-02-25 01:43:59 作者:officeba 【认证】
从Linux系统中读取EXCEL文件
今天OFFICEBA和大家谈谈使用Perl代码读取Excel的新文件格式:OOXML格式

  

由于大多数读者都知道,我们花了很多时间在开发Office 2007的创造和记录一个新的基于XML的文件格式(的Office Open XML ) ,以取代复杂得多二进制格式的各种办公应用程序用于过去20年。了大量的时间。我们中的许多人梦想的XML现在。的OOXML包含一个XML文件格式的每一个最大的Office应用程序,这些格式正在WordprocessingML , PresentationML和SpreadsheetML 。它成为欧洲计算机制造商协会标准(欧洲计算机制造商协会- 376 )在2006年和后获得批准修改的ISO / IEC标准(即29500 )在2008年年初,尽管它尚未得到释放由ISO / IEC 。我认为,可以公平地说,这个办公室的功能,它有更多的新闻报道,有好有坏,比所有其他的Office 2007功能的总和。政治立场外,有一点可以说的肯定的是,此举取得了Office文件更容易理解,并创造了新的方式为我们的客户与他们的数据。在这个后我将走过解决的一个虚构客户的互操作性问题,但首先我想包括一对夫妇的的OOXML基础。

  

阅读材料

  

标准化进程意味着,现在的文件格式本身属于欧洲计算机制造商协会和ISO / IEC ,而不是微软。所有文件,因此,生活在Ecma国际网站(和将生活在ISO / IEC的网站,一旦他们完成了他们的编辑是29500 ) 。这些文件是一个巨大的帮助有兴趣的人士开放的试算表开裂文件-这些文件是真是可读性,嘿,他们是免费的。主要的欧洲计算机制造商协会, 376页是http://www.ecma-international.org/publications/standards/Ecma-376.htm -文件可供下载这里DOCXs或PDF 。有很多在这些文件格式,所以不要单击“打印”不首先观察网页数量。除了格式文件本身也有一个良好的XML在办公室开发者门户网站MSDN上。

若干地区的OOXML标准将是特别有用的看电子表格文件。这些国家是:

1和第2部分(如何的OOXML格式一般适合在一起)
第3部分(如何SpreadsheetML各部分的相互联系)
第4部分(详细信息,具体内容和属性)
我会参考偶尔在本条这些部件。

  

OOXML文件和Excel

  

任何Excel文件的扩展名“ xlsx ” , “ xlsm ”或“ xlam ”是的OOXML文件。这是默认的文件格式的Office 2007 ,并可以保存的Office 2003或Office XP如果您下载并安装兼容包( http://office.microsoft.com/en-us/products/HA101686761033.aspx ) 。一个的OOXML文件(或“一揽子” )只是一个Zip文件-如果你不相信我,请重命名一个。 zip和打开它。 zip档案内的一些。 xml文件(在该工作表,图表等的定义) ,有些二进制文件进行的事情不适合存放在XML (如图像)和一些。 rels文件,界定它们之间的关系所有。包装模型涵盖更详细的第2部分欧洲计算机制造商协会- 376 ,第8条。

  


  

我曾经工作的衍生品交易台,书面表格。任何人在投资银行知道, Excel是一样展望交易大厅-商人利用它的价格绝对一切;保持部门休假日历;计划婚礼和名称及其婴儿。与此同时,更审慎的部分组织具有巨大的后端系统管理机构的风险和监测它们的立场。这些系统几乎总是在广泛的平台- Windows Server中, Solaris操作系统, Linux操作系统-并已在很长一段时间的时间。有一件事你可以说很有信心的是,这些机器没有安装Excel 。

  

需要灵活的交易手段,几乎所有的行业开始新生活之前,在Excel中的任何风险转移到银行系统已经到位。大家不断地需要考虑号码簿和港口到后端的风险管理系统,这是做各种不同的方式在今天。一种流行的方法是有一个“单击此处,然后再回家”宏观上的试算表,连接到数据库和上传行业。能正常工作,直到您结束了不同版本的宏观smattered在交易发生在随机负债表,或该交易商还休假,忘了告诉自己的立场,在这个问题,或任何从审计发现的。另一种选择是写一些代码对中央管理的机器,将负载的所有交易表,重新计算所有这些,写的所有数据。能正常工作,直到VBA的错误出现在半夜,或市场数据的权限不正确,或信息的人谁是要执行,这是了病假。

  

所以让我们说我们有一个衍生品交易商,莎莉,谁正在试验一些新的行业。在这种情况下,萨莉正在试验仅仅持有大量股票和她最喜欢保持她的手指穿过,所以她的可能是由于被解雇很快。该厅2003年的试算表,这些职位的生活是一个巨大的兽-这是充分的那堆VBA宏和充满了床单和被单的旧数据,并指出从以往的交易。萨利知道,不知她要获得此纳入后端系统风险,但她害怕梅辛与她的自豪和喜悦,不希望的责任,而不必每天上载。她的职位列表看起来像这样:

  

  


  

在一个漆黑的房间的另一边的道路,我们有我们的IT人,刘德华,谁负责运行Linux为基础的风险管理和报告功能。安迪知道, Sally已经兼容包,这意味着她的副本Excel 2003中可以保存的OOXML文件。他还memorised整个欧洲计算机制造商协会标准在几个星期前,而调查它是否能够成为一个击中迪斯尼音乐剧,以赢得赌注。他的“的OOXML冰”的想法被证明是不切实际的,他急于证明他的妻子这一幕不是又一个例子boneheaded鹅大通当时他已经花费的时间更有效的浴室墙壁。他来了一个计划来检索Sally的立场直接从电子表格文件。安迪得到萨利同意做到以下几点:

将文件另存为XLSM不是XLS (并购指宏观启用的OOXML文件-她需要这一点是为了让她的工作簿中的宏)
创建一个工作簿级别命名范围, “ MyPortfolio ” ,这将指向两个细胞全名单股票符号和数字的股份
保存该文件在网络共享上的Linux电脑可以看到
安迪现在着手撰写Perl脚本将每天晚上运行,对他的一个Linux电脑的立场,以吸出的试算表并储存在数据库中。安迪不是一个很好的Perl程序员,因此他的一些代码可能看起来理想。他即将发射也很快。安迪是我。我会停止谈论了他的第三人现在。

  

  

这是不是要图书馆阅读的OOXML文件在Perl 。这真的只是为了强调如何简单阅读的OOXML文件,并作为一个有用的参考任何思想剖析自己的档案,在任何编程语言。也许最糟糕的是没有错误处理所有和我有我的怀疑,我用的方法转换为相对路径的绝对不会承受受到阳光直接照射。这一切已经有点糟糕的帮助亚历克Babanov , Excel的开发和壁橱Perl黑客。

  

如果您使用Windows操作系统,有一个极好的。 NET SDK中的阅读和写作的OOXML文件-如果您不是在Windows ,看看OpenXMLDeveloper.org 。他们中的代码示例的Python , Java和其他人,和一些活跃的论坛。

相关文章

同类最新