找回密码
 加入
搜索
查看: 9429|回复: 9

[系统综合] 如何读取Excel指定列内容?谢谢!(已解决)

  [复制链接]
发表于 2013-6-18 19:47:38 | 显示全部楼层 |阅读模式
本帖最后由 cfs43210 于 2013-6-26 16:06 编辑

如何读取Excel指定列内容?谢谢!
发表于 2013-6-19 08:44:15 | 显示全部楼层
_ExcelReadCell
从一个指定Excel对象的活动工作表读取(单元格)信息.


#Include <Excel.au3>
_ExcelReadCell($oExcel, $sRangeOrRow [, $iColumn = 1])
发表于 2013-6-19 08:44:34 | 显示全部楼层
; ***************************************************************
; 示例 1 - 打开一个工作簿并返回其对象标识符后, 写入内容到单元格.  读取单元格内容, 然后保存并关闭文件.
; *****************************************************************

#include <Excel.au3>

Local $oExcel = _ExcelBookNew() ;创建新工作簿, 并使其可见

_ExcelWriteCell($oExcel, "I Wrote to This Cell", 1, 1) ;写入内容到单元格
Local $sCellValue = _ExcelReadCell($oExcel, 1, 1)
MsgBox(4096, "", "The Cell Value is: " & @CRLF & $sCellValue, 2)

MsgBox(4096, "Exiting", "Press OK to Save File and Exit")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; 现在我们把它保存到临时目录; 必要时覆盖文件
_ExcelBookClose($oExcel) ; 最后我们关闭并退出

; ***************************************************************
; 示例 2 - 打开一个工作簿并返回其对象标识符后, 在循环中写入内容到单元格.  读取单元格内容, 然后保存并关闭文件.
; *****************************************************************

#include <Excel.au3>

$oExcel = _ExcelBookNew() ;创建新工作簿, 并使其可见

For $i = 1 To 5 ;循环
    _ExcelWriteCell($oExcel, $i, $i, 1) ;写入内容到单元格
Next

For $i = 1 To 5 ;循环
    $sCellValue = _ExcelReadCell($oExcel, $i, 1)
    MsgBox(4096, "", "The Cell Value is: " & @CRLF & $sCellValue, 2)
Next

MsgBox(4096, "Exiting", "Press OK to Save File and Exit")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; 现在我们把它保存到临时目录; 必要时覆盖文件
_ExcelBookClose($oExcel) ; 最后我们关闭并退出
发表于 2013-6-19 09:20:29 | 显示全部楼层
#include <array.au3>
For $i = 0 To 10
$xls=ObjGet(@ScriptDir&"\test.xls")
With $xls.activesheet
             $arr=.cells($i + 1,1).resize(1,2).value
        ;$arr=.cells(2,1).resize(1,12).value
                ;$arr=.cells(2,1).resize(1,10).formula
        ;$arr=$xls.parent.application.transpose($arr)  ;取出来后行列是反的,如果需要的话,用这句正过来
EndWith
$xls.close(False)
MsgBox(0,"1",$arr[0][0])
next

评分

参与人数 1金钱 +30 贡献 +1 收起 理由
xms77 + 30 + 1 学习了~

查看全部评分

发表于 2013-6-19 22:21:21 | 显示全部楼层
回复 4# lxwlxwayy
学习了,transpose这要用呢!谢谢!
发表于 2013-6-20 18:23:28 | 显示全部楼层
提供另外两个思路:
1. 用ODBC驱动后台打开读取。
2. 使用粘贴板工具快速读取选中区域所有数据。
发表于 2013-6-22 23:12:17 | 显示全部楼层
我记得excel udf里自带函数
发表于 2013-6-23 08:07:45 | 显示全部楼层
其实是在excel中使用autoit更加容易操作
发表于 2013-6-23 08:33:35 | 显示全部楼层
示例 1 - 打开一个工作簿并返回其对象标识符后, 在循环中写入内容到单元格.  读取单元格内容到数组中, 显示数组,
;                                然后保存并关闭文件.
; *****************************************************************

#include <Excel.au3>
#include <Array.au3>

Local $oExcel = _ExcelBookNew() ;创建新工作簿, 并使其可见

For $i = 1 To 5 ;循环
        _ExcelWriteCell($oExcel, $i, $i, 1) ;把数值 1 到 5 垂直写入单元格
Next

For $i = 1 To 5 ;循环
        _ExcelWriteCell($oExcel, Asc($i), 1, $i + 2) ;水平写入单元格, 使用 Asc 得到不同值用于读取
Next

Local $aArray1 = _ExcelReadArray($oExcel, 1, 1, 5, 1) ;方向是水平的
Local $aArray2 = _ExcelReadArray($oExcel, 1, 3, 5) ;方向是垂直的
_ArrayDisplay($aArray2, "Horizontal")
_ArrayDisplay($aArray1, "Vertical")

MsgBox(4096, "Exiting", "Press OK to Save File and Exit")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; 现在我们把它保存到临时目录; 必要时覆盖文件
_ExcelBookClose($oExcel) ; 最后我们关闭并退出
 楼主| 发表于 2013-6-26 16:05:46 | 显示全部楼层
谢谢!采纳4楼。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 01:20 , Processed in 0.103608 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表