斯潘8
斯潘4
本条适用于仅限FME 2013 SP1(13450版)及更早版本.在FME 2013 SP2中,基于ExcelADO的读写器(XLS-ADO)已被弃用,取而代之的是基于libxl库(XLSX和XLSX2)的新Excel读写器。有关当前Excel读写器的详细信息,请访问Excel入门辅导的
Excel是微软流行的电子表格应用程序。它由FME读取为非几何(或非空间)数据。选择Excel文件(.xls)进行输入时,您应该进入设置并选择所需的工作表(表)。
Microsoft Excel读写器通过ADO工作。
ADO用于直接读写基于Microsoft的技术ActiveX数据对象(ADO)接口,而不是通过ODBC。其结果是改进了功能和性能(在某些情况下,这一进步是巨大的)。
对于Excel,ADO特别允许:
Excel的默认ADO设置很有可能会错误识别列类型并自动删除数据。例如,如果列的前8个数据行包含数字,后面的任何非数字数据都不会被读取。现代版的FME试图降低这种情况发生的可能性,用户还可以采取进一步的措施来改善这种情况。
ADO用于确定Excel列类型的一般算法如下:
ADO提供程序有一个限制,允许读取/写入最多255列。
有多个引擎可用于使用ADO读取Excel文件。“jet”仅在执行类型扫描时考虑列中的数据。“王牌”访问连接引擎)在执行类型扫描时同时考虑数据和数据格式。在实践中,这意味着ace更有可能为列选择更安全的“文本”类型。亚搏在线
FME 2009及更早版本仅支持喷气发动机。FME 2010支持Jet和Ace,默认为ace。为了解决并发读/写问题,FME 2011将默认引擎改回了jet,但如果jet不存在或文件扩展名为.xlsx或.xlsb,则保留了对ace的支持。所有这些版本的FME都容易受到上述“前8行”场景的影响,但是由于ace更倾向于为列类型选择文本,有些文件将在FME 2010中正确读取,而不是在FME 2011中正确读取。
截至FME 2012 Beta 12055,FME临时修改影响Jet引擎的注册表设置,使typeguessrows=0,importmixedtypes=text。这将确保混合类型的列被标识为文本,并且在读取时不会丢失任何数据。Ace继续像以前一样工作,但如果检测到不正确的注册表设置,则会产生警告。
Q)FME似乎读取的Excel功能比我在电子表格中记录的要多-为什么?
a)我们用来读取Excel文件的库将返回具有空值的任何行的记录-问题是,在Excel中打开电子表格时,不容易发现单元格是否为空。
避免此问亚搏在线题的最安全方法是在使用Excel时,右键单击行号并选择“删除”,确保执行任何数据删除操作;即。删除行。如果只选择行中的单元格并按删除键,则有可能删除单元格内容,但保留行的完整性—正是这些行将由FME读取为空白记录。
为了删除这些额外功能测试器可以使用。
?2019安全亚搏在线软件公司|合法的