今天修改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
如果本博文对您有用,请支持一下吧~~
相关推荐
4. **数据清洗**:数据清洗是必不可少的步骤,它包括处理缺失值、转换数据类型、去除异常值等。Perl提供了丰富的数据处理函数,如`chomp`去除换行符,`s///`进行字符串替换等。 5. **数据整合**:如果需要结合基因...
引用是Perl中一种特殊的数据类型,用于存储变量的内存地址。 - **创建引用**: 创建一个指向变量的引用。 ```perl $var13 = "hello"; $pointerto = \$var13; ``` - **解除引用**: 使用双重美元符号`$$`来解除...
2. **数据类型**:Perl支持多种数据类型,如标量(字符串、数字)、数组、哈希(关联数组)、引用以及复合数据类型。这些数据类型的灵活使用是Perl强大功能的关键。 3. **变量**:Perl中的变量以符号“$”、“@”或...
1. **Perl基础**:包括变量、数据类型(如标量、数组、哈希)、控制结构(如if-else、for、while循环)以及函数的使用。 2. **字符串操作**:Perl对字符串的处理非常强大,支持模式匹配、替换、截取等操作,其中...
在Perl中文手册中,你将找到关于Perl语言的全面介绍,包括基础语法、数据类型、控制结构、函数、模块使用以及错误处理等内容。此外,手册可能还会涵盖正则表达式的深入讲解,因为这是Perl的核心特性之一。通过学习这...
"Perl 语言常见问题集"很可能是针对Perl编程中遇到的一些典型问题的解答集合,涵盖了初学者到高级用户可能会遇到的各种场景。这样的资源对于学习和提高Perl编程技能非常有帮助,因为它提供了解决实际问题的具体步骤...
"Perl语言入门.pdf"可能包含Perl的基础语法,例如变量声明、数据类型(标量、数组、哈希)、流程控制(条件语句、循环结构)、函数和模块的使用。此外,还可能涉及正则表达式,这是Perl处理文本的强大工具,以及文件...
* Perl语言的数据类型:Perl语言的数据类型包括标量、数组、哈希、引用等多种类型。 * Perl语言的运算操作符:Perl语言的运算操作符包括加减乘除等基本运算符,另外还有字符串连接、复制等特殊运算符。 * Perl语言的...
### Perl数据结构详解 #### 一、数组的数组(两维数组) 在Perl中,数组的数组是最常见的数据结构之一,常被称为二维数组或矩阵。这种数据结构通过将多个数组对象存储在一个数组中来实现。 ##### 1. 创建与访问 ...
1. **基础语法**:包括变量定义、赋值、数据类型(如标量、数组、哈希)、控制结构(如if-else、for、while循环)、子程序(subroutine)等基本编程概念。 2. **正则表达式**:Perl以其强大的正则表达式引擎著称,...
Perl5.0中文教程概述了Perl编程语言的基本概念和使用方法。...总的来说,Perl5.0中文教程旨在引导读者了解Perl的基础知识,包括安装、运行程序以及基本的数据类型,为后续深入学习和实践打下基础。
1. **变量和数据类型**:Perl支持多种数据类型,包括标量(数字或字符串)、数组(一维列表)和哈希(关联数组)。变量标识符以符号"$"、"@ "或"% "开头,分别对应标量、数组和哈希。 2. **控制结构**:Perl提供了...
- **4.4.1 基本类型**:介绍Perl 6中的基本数据类型。 - **4.4.2 添加约束**:探讨如何在Perl 6中使用类型约束来确保参数符合特定条件。 #### 4.5 捕获 - **4.5.1 创建和使用捕获**:介绍Perl 6中如何使用捕获来...
- **变量和数据类型**:Perl支持各种数据类型,包括标量(数字或字符串)、数组、哈希等。 - **控制结构**:如条件语句(if/else)、循环(for、while)和流程控制(next、last、redo)。 - **函数和子程序**:Perl...
基本的Perl数据类型、引用、矩阵、复杂数据结构、动态规划、近似字符串匹配等内容都是生物信息学中常见的数据处理技术。书中详细阐述了Perl中的数据结构,包括数组、哈希、数组的数组、哈希的哈希等,以及如何在Perl...
1. **基础语法**:包括变量声明、数据类型(标量、数组、哈希等)、流程控制(条件语句、循环语句)以及函数调用等。 2. **正则表达式**:Perl的正则表达式功能强大,可以进行复杂的文本匹配和替换,是Perl的一大...
首先,"探索perl的世界"这部分可能涵盖Perl的基本语法,包括变量声明、数据类型(如标量、数组、哈希)、流程控制(如if语句、循环结构)以及函数的使用。Perl的灵活性在于它允许程序员以多种方式实现相同的功能,这...
这本教程可能详细解释了Perl中的数据类型,如标量、数组、哈希以及引用,这些都是Perl编程的基础。此外,它可能还讨论了文件和目录操作,这是在Unix/Linux环境下常见的任务。高级主题如Perl的编译器工具如PerlCC,...
例如,它可能包含了一系列处理特定类型数据的方法,或者是为了提高性能而优化的一些算法。为了使用这样的模块,你需要首先安装它,然后在Perl脚本中通过`use`语句引入。 在Perl中,使用模块的步骤通常如下: 1. **...
在《Programming Perl》第三版中,作者们详细讲解了Perl的语法特性,包括变量、数据类型、控制结构、正则表达式、文件和目录操作、模块系统等核心概念。 1. 变量与数据类型:Perl支持多种数据类型,如标量、数组、...