cfs43210 发表于 2013-6-18 19:47:38

如何读取Excel指定列内容?谢谢!(已解决)

本帖最后由 cfs43210 于 2013-6-26 16:06 编辑

如何读取Excel指定列内容?谢谢!

wsfda 发表于 2013-6-19 08:44:15

_ExcelReadCell
从一个指定Excel对象的活动工作表读取(单元格)信息.


#Include <Excel.au3>
_ExcelReadCell($oExcel, $sRangeOrRow [, $iColumn = 1])

wsfda 发表于 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) ; 最后我们关闭并退出

lxwlxwayy 发表于 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)
next

xms77 发表于 2013-6-19 22:21:21

回复 4# lxwlxwayy
学习了,transpose这要用呢!谢谢!

republican 发表于 2013-6-20 18:23:28

提供另外两个思路:
1. 用ODBC驱动后台打开读取。
2. 使用粘贴板工具快速读取选中区域所有数据。

morphling12345 发表于 2013-6-22 23:12:17

我记得excel udf里自带函数

gongxiang123 发表于 2013-6-23 08:07:45

其实是在excel中使用autoit更加容易操作

morphling12345 发表于 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) ; 最后我们关闭并退出

cfs43210 发表于 2013-6-26 16:05:46

谢谢!采纳4楼。
页: [1]
查看完整版本: 如何读取Excel指定列内容?谢谢!(已解决)