tcl - 如何在 tcl 中读取 xlsx 工作表文件?
问题描述
目前,我正在通过将文件转换为 CSV 格式来读取文件。有什么方法可以通过 tcl 读取 excel 工作表?
解决方案
下面的示例使用CAWT包打开 csv 文件并获取其值:
package require cawt
# Open a new instance
set appId [Excel::OpenNew false] ; # set true to open an visible Excel
set workbookId [Excel::AddWorkbook $appId]
set csvfile {c:\temp\test.csv}
# 1;2;3
# 4;5;6
try {
set worksheetId [Excel::GetWorksheetIdByIndex $workbookId 1] ; # open first sheet
set rangeId [Excel::SelectRangeByString $worksheetId "A1"] ; # select range 'A1'
# Import csv file to range A1
Excel::Import $rangeId $csvfile \
-consecutive false \
-delimiter ";" \
-decimalseparator "."
# Get last column & row used...
set numCols [Excel::GetNumUsedColumns $worksheetId]
set numRows [Excel::GetNumUsedRows $worksheetId]
# Get values
puts [Excel::GetMatrixValues $worksheetId 1 1 $numRows $numCols]
} finally {
# no need to close Excel if visible...
if {![Excel::Visible $appId]} {
Excel::Close $workbookId
Excel::Quit $appId false
} else {
Cawt::Destroy ; # delete com object
}
}
结果 :
{1.0 2.0 3.0} {4.0 5.0 6.0}
推荐阅读
- node.js - 在创建 React 项目期间出现 EPERM -4048 错误
- python - Python:将特定方法保存在对象中
- ios - IOS/swift currentTitle 返回 nil
- python - TypeError:参数无效,不是字符串或列:
在 0x7f1f357c6160> 类型 - python - Jinja 模板 groupby 排序问题
- python - Python htpasswd 设置 zipfiles 并删除
- flutter - 颤振在调试模式下运行错误未来
_loadAsync(? - javascript - Angular 循环依赖:处理它的最佳实践
- javascript - 尝试发送嵌入时抛出错误
- reactjs - 反应路由器 useHistory 未定义