intToChar.tcl

 # input a number : 1 to 32 , you will get a char A to Z
#A-Z:1-32
proc intToChar {int} {
if {![string is integer $int]} {
return "Please input a number!"
}
if {![expr 0<$int&&32>$int]} {
return "Input a numer range 1 to 32!"
}
set listChars [list A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
set intTemp [expr $int-1]
return [lindex $listChars $intTemp]
} #test
#return [intToChar 1] xls_read.tcl
package require tcom
source intToChar.tcl
proc xls_read {fileName} {
if {![file exists $fileName]} {
return {File is not existed!}
}
# set fileName {D:/test.xlsx}
# 创建com实例,打开工作表
set application [::tcom::ref createobject "Excel.Application"]
$application Visible 0
set workbooks [$application Workbooks]
set workbook [$workbooks Open $fileName]
set worksheets [$workbook Worksheets]
#set worksheet [$worksheets Item "Sheet1"]
set worksheet [$worksheets Item [expr 1]]
set cells [$worksheet Cells] set exeFlag 1
#version 1.1
if {1==$exeFlag} {
###result
#set result {}
set rowIndex 1
#used max rows count
set rowUsedCount [[[$worksheet UsedRange] Rows] Count]
puts "Max row is $rowUsedCount!"
#used max columns count
set columnsUsedCount [[[$worksheet UsedRange] Columns] Count]
puts "Max Column is $columnsUsedCount!"
while { $rowIndex <= $rowUsedCount } {
set rowResult {}
set columnIndex 1
while { $columnIndex <= $columnsUsedCount } {
set value [[$cells Item $rowIndex [intToChar $columnIndex]] Value]
# puts $rowNumber+$columnNumber
#show every value
# puts $columnValue
lappend rowResult $value
#next column
incr columnIndex
}
puts $rowResult
###result
#lappend result $rawResult
#read next raw:init orgin vlaue
#next raw
incr rowIndex
}
} #version 1.0
if {-1==$exeFlag} {
###result
#set result {} set rawEnd 0
set columnEnd 0 set rowNumber 1
set columnNumber 1
while { $rawEnd == 0 } {
set rawResult {}
# set columnNumber 1
while { $columnEnd == 0 } {
set columnValue [[$cells Item $rowNumber [intToChar $columnNumber]] Value]
# puts $rowNumber+$columnNumber
#check column isEnd
if { $columnValue == ""} {
set columnEnd 1
continue
}
#show every value
# puts $columnValue
lappend rawResult $columnValue
#next column
incr columnNumber
}
puts $rawResult
###result
#lappend result $rawResult
#read next raw:init orgin vlaue
set columnEnd 0
set columnNumber 1
#next raw
incr rowNumber
#check row isEnd
if {[[$cells Item $rowNumber A] Value] == ""} {
set rawEnd 1
continue
}
}
}
$workbook Close
$application Quit
###result
#return $result
}
set filename {D:/test.xlsx}
#test
return [xls_read $filename]

TCL:读取表格(xls)中的数据的更多相关文章

  1. TCL:表格(xls)中写入数据

    intToChar.tcl # input a number : 1 to 32 , you will get a char A to Z #A-Z:1-32 proc intToChar {int} ...

  2. matlab读取excel文件中的数据

    1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...

  3. Python笔记(读取txt文件中的数据)

    在机器学习中,常常需要读取txt文本中的数据,这里主要整理了两种读取数据的方式 数据内容 共有四列数据,前三列为特征值,最后一列为数据标签 40920 8.326976 0.953952 3 1448 ...

  4. Python中如何读取xls中的数据

    要想读取EXCEL中的数据,首先得下载xlrd包,地址:https://pypi.python.org/pypi/xlrd  安装方法:下载解压后,利用windows  dos命令进入解压目录eg,c ...

  5. python新建一个表格xls并写入数据

    # -*- coding:utf-8 -*- import xlwt workbook = xlwt.Workbook() # 新建一个工作簿 sheet = workbook.add_sheet(& ...

  6. C#读取Excel表中的数据时,为何有些行的字段内容读取不到

    转载:http://bbs.csdn.net/topics/360220285 1.当某列数据中含有混合类型时,在.NET中使用Microsoft.Jet.OLEDB.4.0来读取Excel文件造成数 ...

  7. JAVA读取TXT文本中的数据

    现在在Demo.txt中存在数据: ABC 需要将ABC从文本文件中读取出来 代码片: import java.io.*; class FileReaderDemo { public static v ...

  8. Newtonsoft.Json读取txt文件中json数据并存到SQL service 数据库!

    using System; using System.Collections.Generic; using System.Text; using System.IO; using Newtonsoft ...

  9. 用python的pandas读取excel文件中的数据

    一.读取Excel文件   使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...

随机推荐

  1. Python:XXX missing X required positional argument: 'self'

    代码的一个小小Bug有时候会让人焦头烂额,费了很大劲搞明白的问题,如果不记录下来,是很容易遗忘的! 定义一个类,如果按照以下的方式使用,则会出现TypeError: testFunc() missin ...

  2. 比较两个NSDate类型的参数相差的时间差

    +(NSInteger)getDaysFrom:(NSDate *)serverDate To:(NSDate *)endDate { NSCalendar *gregorian = [[NSCale ...

  3. PTA Sort Three Distinct Keys

    Suppose you have an array of N elements, containing three distinct keys, "true", "fal ...

  4. Java中Timer的用法

    现在项目中用到需要定时去检查文件是否更新的功能.timer正好用于此处. 用法很简单,new一个timer,然后写一个timertask的子类即可. 代码如下: package comz.autoup ...

  5. js鼠标经过文字滚动,移开还原

    不说别的,直接贴代码. <div class="kj-scroll" id="countrylist0" onmouseover="wPAa = ...

  6. C#获得客户端IP

    代码: /// <summary> /// 获得当前页面客户端的IP /// </summary> /// <returns>当前页面客户端的IP</retu ...

  7. CSS浏览器兼容问题总结

    为什么会出现浏览器兼容问题? 由于各大主流浏览器是不同的厂家开发的,所以使用的核心也不相同,架构代码很难重合,就会产生各种各样的bug. IE6中常见的css解析bug 1)默认高度(IE6)部分块元 ...

  8. C#中指针的用法

    (*) unsafe 和 fixed unsafe { ]; ; i < array.Length; i++) { array[i] = i; } fixed (int* p = array) ...

  9. nginx编译模块详解

    –prefix= 指向安装目录–sbin-path 指向(执行)程序文件(nginx)–conf-path= 指向配置文件(nginx.conf)–error-log-path= 指向错误日志目录–p ...

  10. WebView网页中使用到支付宝调不起来,提示ERR_UNKNOWN_URL_SCHEME

    转载自:http://blog.csdn.net/u014369799/article/details/51305788 在WebView中如果使用到支付宝,需要添加以下代码,否则操作系统会将支付宝的 ...