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. linux命令(6):rmdir 命令

    rmdir命令 rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写 ...

  2. MINA系列学习-mina整体介绍

    今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者类的方法.我倒是想从mina源码的结构和功能上对这个框架进行剖析.源码的阅 ...

  3. ztree插件的使用

    在bootstrap中使用ztree插件做树形架构,由于觉得原始的树形不够美观,所以改了其中的css插件 demo演示,以及各种属性的用法网站:  http://www.treejs.cn/v3/de ...

  4. Send SqlParameter to Dapper

    Question: I' using Dapper in my project. I have a list of SqlParameters and I want to send it to Dap ...

  5. hdu 1069 (DP) Monkey and Banana

    题目:这里 题意: Description 一组研究人员正在设计一项实验,以测试猴子的智商.他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子.如果猴子足够聪明,它应当能够通过合理的放置一些砖块 ...

  6. git更换仓库地址

    1.  从原始地址 clone 一份不包含 work copy的仓库: git clone --bare bitbucket_project_address 2. 在os china上创建同名项目. ...

  7. PHP从mysql获取数据的方法

    <?php require "database.php"; //读取数据库中的数据 $sql_1 = "SELECT * FROM test_table" ...

  8. ASI 与 AFN

    HTTP终结者.功能十分强大. 基于底层的CFNetwork框架,运行效率很高. 可惜

  9. Shell文本处理 - 匹配与编辑

    正则表达式 符号 含义 . 匹配任意ASCII中任意单个字符,或是字母,或是数字 ^ 匹配行首 $ 匹配行尾 * 匹配任意字符或前一个的一次或多次重复 \ 转义,被转义的有$ . ‘ “ * [ ] ...

  10. windows7安装python2.7及scrapy

    http://www.cnblogs.com/txw1958/archive/2012/07/12/scrapy_installation_introduce.html 第0步:当然是安装python ...