`

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

 

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

 

分享到:
评论

相关推荐

    TCGA临床数据提取_perl提取tcga临床数据,perl读取临床数据报错

    4. **数据清洗**:数据清洗是必不可少的步骤,它包括处理缺失值、转换数据类型、去除异常值等。Perl提供了丰富的数据处理函数,如`chomp`去除换行符,`s///`进行字符串替换等。 5. **数据整合**:如果需要结合基因...

    perl语言中的变量类型

    引用是Perl中一种特殊的数据类型,用于存储变量的内存地址。 - **创建引用**: 创建一个指向变量的引用。 ```perl $var13 = "hello"; $pointerto = \$var13; ``` - **解除引用**: 使用双重美元符号`$$`来解除...

    Perl语言参考手册中文htmlPerl语言参考手册中文html

    2. **数据类型**:Perl支持多种数据类型,如标量(字符串、数字)、数组、哈希(关联数组)、引用以及复合数据类型。这些数据类型的灵活使用是Perl强大功能的关键。 3. **变量**:Perl中的变量以符号“$”、“@”或...

    perl 中文网页教程

    1. **Perl基础**:包括变量、数据类型(如标量、数组、哈希)、控制结构(如if-else、for、while循环)以及函数的使用。 2. **字符串操作**:Perl对字符串的处理非常强大,支持模式匹配、替换、截取等操作,其中...

    perl中文手册.zip

    在Perl中文手册中,你将找到关于Perl语言的全面介绍,包括基础语法、数据类型、控制结构、函数、模块使用以及错误处理等内容。此外,手册可能还会涵盖正则表达式的深入讲解,因为这是Perl的核心特性之一。通过学习这...

    Perl 语言常见问题集

    "Perl 语言常见问题集"很可能是针对Perl编程中遇到的一些典型问题的解答集合,涵盖了初学者到高级用户可能会遇到的各种场景。这样的资源对于学习和提高Perl编程技能非常有帮助,因为它提供了解决实际问题的具体步骤...

    最新perl中文教程

    "Perl语言入门.pdf"可能包含Perl的基础语法,例如变量声明、数据类型(标量、数组、哈希)、流程控制(条件语句、循环结构)、函数和模块的使用。此外,还可能涉及正则表达式,这是Perl处理文本的强大工具,以及文件...

    Perl语言学习.pdf

    * Perl语言的数据类型:Perl语言的数据类型包括标量、数组、哈希、引用等多种类型。 * Perl语言的运算操作符:Perl语言的运算操作符包括加减乘除等基本运算符,另外还有字符串连接、复制等特殊运算符。 * Perl语言的...

    Perl数据结构

    ### Perl数据结构详解 #### 一、数组的数组(两维数组) 在Perl中,数组的数组是最常见的数据结构之一,常被称为二维数组或矩阵。这种数据结构通过将多个数组对象存储在一个数组中来实现。 ##### 1. 创建与访问 ...

    perl 中文手册 CHM

    1. **基础语法**:包括变量定义、赋值、数据类型(如标量、数组、哈希)、控制结构(如if-else、for、while循环)、子程序(subroutine)等基本编程概念。 2. **正则表达式**:Perl以其强大的正则表达式引擎著称,...

    Perl5.0中文教程.doc

    Perl5.0中文教程概述了Perl编程语言的基本概念和使用方法。...总的来说,Perl5.0中文教程旨在引导读者了解Perl的基础知识,包括安装、运行程序以及基本的数据类型,为后续深入学习和实践打下基础。

    Learning Perl [Perl语言入门|中英文|清晰|第5版]

    1. **变量和数据类型**:Perl支持多种数据类型,包括标量(数字或字符串)、数组(一维列表)和哈希(关联数组)。变量标识符以符号"$"、"@ "或"% "开头,分别对应标量、数组和哈希。 2. **控制结构**:Perl提供了...

    perl6手册perl6

    - **4.4.1 基本类型**:介绍Perl 6中的基本数据类型。 - **4.4.2 添加约束**:探讨如何在Perl 6中使用类型约束来确保参数符合特定条件。 #### 4.5 捕获 - **4.5.1 创建和使用捕获**:介绍Perl 6中如何使用捕获来...

    perl学习手札中文

    - **变量和数据类型**:Perl支持各种数据类型,包括标量(数字或字符串)、数组、哈希等。 - **控制结构**:如条件语句(if/else)、循环(for、while)和流程控制(next、last、redo)。 - **函数和子程序**:Perl...

    perl在生物信息中的应用

    基本的Perl数据类型、引用、矩阵、复杂数据结构、动态规划、近似字符串匹配等内容都是生物信息学中常见的数据处理技术。书中详细阐述了Perl中的数据结构,包括数组、哈希、数组的数组、哈希的哈希等,以及如何在Perl...

    perl中文手册perl中文手册

    1. **基础语法**:包括变量声明、数据类型(标量、数组、哈希等)、流程控制(条件语句、循环语句)以及函数调用等。 2. **正则表达式**:Perl的正则表达式功能强大,可以进行复杂的文本匹配和替换,是Perl的一大...

    superor老师perl中文视频教程完整版ppt+实例

    首先,"探索perl的世界"这部分可能涵盖Perl的基本语法,包括变量声明、数据类型(如标量、数组、哈希)、流程控制(如if语句、循环结构)以及函数的使用。Perl的灵活性在于它允许程序员以多种方式实现相同的功能,这...

    perl语言编程和perl语言入门

    这本教程可能详细解释了Perl中的数据类型,如标量、数组、哈希以及引用,这些都是Perl编程的基础。此外,它可能还讨论了文件和目录操作,这是在Unix/Linux环境下常见的任务。高级主题如Perl的编译器工具如PerlCC,...

    PERL。PERL。ADD

    例如,它可能包含了一系列处理特定类型数据的方法,或者是为了提高性能而优化的一些算法。为了使用这样的模块,你需要首先安装它,然后在Perl脚本中通过`use`语句引入。 在Perl中,使用模块的步骤通常如下: 1. **...

    programming perl 网页版

    在《Programming Perl》第三版中,作者们详细讲解了Perl的语法特性,包括变量、数据类型、控制结构、正则表达式、文件和目录操作、模块系统等核心概念。 1. 变量与数据类型:Perl支持多种数据类型,如标量、数组、...

Global site tag (gtag.js) - Google Analytics