`

Perl中数据类型的问题

    博客分类:
  • Perl
 
阅读更多

今天修改PERL脚本读取EXCEL中的数据时,发现一个问题。有一列存放的是日期格式的数据。使用PERL取出来的VALUE使用print打印出来都是:Win32::OLE::Variant=SCALAR(XXXXX)。

 

网上查找一番。问题很快解决。

 

需要关注一下EXCEL中各种变量类型的转化。下面列出来一些常见的数据类型:

From: http://paginas.fe.up.pt/~jvv/PERL/manual/site/lib/Win32/OLE/Variant.html#variants

A Variant is a data type that is used to pass data between OLE connections.

The default behavior is to convert each perl scalar variable into an OLE Variant according to the internal perl representation. The following type correspondence holds:

        C type          Perl type       OLE type
        ------          ---------       --------
          int              IV            VT_I4
        double             NV            VT_R8
        char *             PV            VT_BSTR
        void *           ref to AV       VT_ARRAY
           ?              undef          VT_ERROR
           ?        Win32::OLE object    VT_DISPATCH

Note that VT_BSTR is a wide character or Unicode string. This presents a problem if you want to pass in binary data as a parameter as 0x00 is inserted between all the bytes in your data. The Variant() method provides a solution to this. With Variants the script writer can specify the OLE variant type that the parameter should be converted to. Currently supported types are:

        VT_UI1     unsigned char
        VT_I2      signed int (2 bytes)
        VT_I4      signed int (4 bytes)
        VT_R4      float      (4 bytes)
        VT_R8      float      (8 bytes)
        VT_DATE    OLE Date
        VT_BSTR    OLE String
        VT_CY      OLE Currency
        VT_BOOL    OLE Boolean

 

根据这个,很快就能找到各种类型的映射。

例如:

我要读取的列为日期类型,则需要在脚本的最前面添加:

 

use Win32::OLE::Variant;

 再使用:

Variant(VT_DATE, $sheet->Range("O$row")->{'Value'});

 访问即可。

 

有兴趣的朋友可以来这里看看:http://www.perlmonks.org/index.pl?node_id=153486

 

如果本博文对您有用,请支持一下吧~~

 

分享到:
评论

相关推荐

    Mojo-Autobox:Perl 原生数据类型的一些额外 Mojo

    名称Mojo::Autobox - Perl 原生数据类型的一些额外 Mojo概要 use Mojo::Base -strict;use Mojo::Autobox;# "site.com\n"'{"html": "<a></a>"}' ->json('/html') ->dom->at('a')->{href} ->url->host ->byte_stream-...

    perl 语言入门(中文)

    perl语言入门的不二选择(中文)。适合新手、菜鸟了解perl,学习perl。主要包括perl语言的数据类型,循环控制,正则表达式的应用等基础内容。

    统计学生成绩perl

    用perl语言实现统计学生成绩 Nol 25 Ben 76 Clementine 49 Norm 66 Chris 92 Doug 42 Carol 25 Ben 12 Clementine 0 Norm 67

    Perl 语言编程教程

    虽然对于那些需要复杂数据结构的复杂问题而言,声明变量是一个好主意.但是 对于很多简单的日常问题,你肯定喜欢这样的一种编程语言,你只需简单说: print "Howdy, World!\n"; 程序就能得到你所需的结果.

    PERL语言编程

    <br/>我们很高兴的是 Perl 避免了所有这些问题,同时还保留了这些语言中的许多优点,同时还有一些自己的特色。Perl 的特色来自许多方面:它的特性集的工具,Perl 社区的创造性,以及开源运动的大环境。不过,...

    Perl 实例精解(第三版).pdf

    5.2 混合数据类型 5.3 优先权与结合性 5.3.1 赋值运算符 5.3.2 关系运算符 5.3.3 等值运算符 5.3.4 逻辑运算符(短路运算符) 5.3.5 逻辑字运算符 5.3.6 算术运算符 5.3.7 自动递增和自动递减...

    perl基本语法.pdf

    perl基本语法 讲述数据类型 控制叙述 副程式 I/O和档案处理等

    Perl语言入门 (第五版) 高清中文PDF版 -- 001

    * Perl的变量类型 * 子程序 * 文件的操作 * 正则表达式 * 字符串的操作 * 列表与排序 * 进程的管理 * 智能匹配 * 第三方模块的使用  有些人只是想要完成任务,Perl语言为此而生。Perl的最初目标只是为了...

    perl语言入门

    ·Perl的变量类型 ·子程序 ·文件的操作 ·正则表达式 ·字符串的操作 ·列表与排序 ·进程的管理 ·智能匹配 ·第三方模块的使用 有些人只是想要完成任务,Perl语言为此而生。Perl的最初目标只是为了协助Unix系统...

    Perl语言入门_第五版.pdf

    ·Perl的变量类型 ·子程序 ·文件的操作 ·正则表达式 ·字符串的操作.. ·列表与排序 ·进程的管理 ·智能匹配 ·第三方模块的使用 有些人只是想要完成任务,Perl语言为此而生。Perl的最初目标只是为了协助Unix...

    Perl Testing程序高手秘笈

    压缩包包括: 1.Perl testing a developer's notebook.chm 英文版 2.Perl.Testing程序高手秘笈.pdf 中文版(含目录) ...第九章 其他类型的测试 编写可测试的程序 发生了什么事? 测试程序 测试交互式程序 测试共享库

    Perl DBI 参考(强烈推荐)

    DBI 数据类型 一个简单的DBI 脚本 处理错误 .....

    Perl语言入门(第五版-中文版).pdf

    ·perl的变量类型 ·子程序 ·文件的操作 ·正则表达式 ·字符串的操作.. ·列表与排序 ·进程的管理 ·智能匹配 ·第三方模块的使用 有些人只是想要完成任务,perl语言为此而生。perl的最初目标只是为了协助unix...

    邓炜php基本语法(一)变量常量数据类型

    二、掌握PHP变量、常量、数据类型 第一节 PHP语法的概述 PHP语法主要借鉴于C/C++,也部分参考了Java和Perl。 类似C语言,书写PHP代码的时候,每句完成代码后都要以分号“;”结束。 既然是一门编程语言,肯定会由...

    Perl语言入门 (第五版) 高清中文PDF版 -- 002

    * Perl的变量类型 * 子程序 * 文件的操作 * 正则表达式 * 字符串的操作 * 列表与排序 * 进程的管理 * 智能匹配 * 第三方模块的使用  有些人只是想要完成任务,Perl语言为此而生。Perl的最初目标只是为了...

    Perl语言入门_第五版

    ·Perl的变量类型 ·子程序 ·文件的操作 ·正则表达式 ·字符串的操作.. ·列表与排序 ·进程的管理 ·智能匹配 ·第三方模块的使用 有些人只是想要完成任务,Perl语言为此而生。Perl的最初目标只是为了...

    perl相关知识点

    perl相关知识点,基本语法和数据类型,基本的类,包,函数等。

    Perl Testing程序高手秘籍

    作者希望你已经知道如何安装和有效使用Perl模块,并在自己的程序当中尝试过,并对Perl的数据结构和面向对象开发有深入的了解。《程序高手秘笈》系列如同书名所宣称的:书中的潦草手稿与注记正是王牌技客知道你在玩新...

    algebraic:Perl中的代数数据类型的演示。 该示例是一种简单的表达语言,带有一个词法分析器,解析器,部分求值器和漂亮的打印机

    代数的 Perl中的代数数据类型的演示。 该示例是一种简单的表达语言,带有一个词法分析器,解析器,部分求值器和漂亮的打印机。

    Perl语言编程(非常好理解)

    我们认为 Perl 是一种容易学习和使用的语言,而且我们希望能证明我们是对的.Perl ...虽然对于那些需要复杂数据结构的复杂问题而言,声明变量是一个好主意.但是对于很多简单的日常问题,你肯定喜欢这样的一种编程语言.

Global site tag (gtag.js) - Google Analytics