如何读取Excel指定列内容?谢谢!(已解决)
本帖最后由 cfs43210 于 2013-6-26 16:06 编辑如何读取Excel指定列内容?谢谢! _ExcelReadCell
从一个指定Excel对象的活动工作表读取(单元格)信息.
#Include <Excel.au3>
_ExcelReadCell($oExcel, $sRangeOrRow [, $iColumn = 1]) ; ***************************************************************
; 示例 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) ; 最后我们关闭并退出 #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 回复 4# lxwlxwayy
学习了,transpose这要用呢!谢谢! 提供另外两个思路:
1. 用ODBC驱动后台打开读取。
2. 使用粘贴板工具快速读取选中区域所有数据。 我记得excel udf里自带函数 其实是在excel中使用autoit更加容易操作
示例 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) ; 最后我们关闭并退出
谢谢!采纳4楼。
页:
[1]