我需要为特定单元格输入“命名范围”值。
我在excel中为(A4,B4)单元格输入“命名范围”值,读取我们使用sh.cell(row,col)的单元格值但是如何获取该单元格的名称范围值。
我没有得到怎么做......
帮助我..提前谢谢
答案 0 :(得分:0)
不幸的是我没有足够的代表发表评论,所以我会尽力从你的问题中理解。
所以,如果我做对了,你在工作表上有一个命名范围,其中范围的名称,由sh.Range(“A4:B4”)引用,是'name_a_range'(我包括下划线,因为你可以名字中有空格。
您可以从Sheets.Cells(row,col).Value中获取值,但是您希望通过命名范围执行此操作。
好的,要做到这一点:
Dim valA as Variant, valB as Variant
Dim valArray() as Variant
'' To get the value in Cell "A4"
valA = sh.Range("name_a_range").Cells(1,1).Value
'' To get the value in Cell "B4"
valB = sh.Range("name_a_range").Cells(1,2).Value
'' Or if you have a Variant() array already Dim'ed (like above)
valArray = sh.Range("name_a_range").Value
工作表的Range对象可以采用:
'' Expression for a range: "A4" to "B4" , using Cells
sh.Range(sh.Cells(4,1), sh.Cells(4,2))
'' Expression for a range: "A4" to "B4" , using xlA1 format
'' *Which is the most familiar
sh.Range("A4:B4")
'' Expression for a range: "A4" to "B4" , using name
sh.Range("PreviouslyNamedRange")
对于任何范围,您可以将其视为自己的数组(从位置1开始)。 如果范围的大小(尺寸)未知,您可以使用内置的Range函数:
sh.Range("name_a_range").Rows.Count '' returns 1
sh.Range("name_a_range").Column.Count '' returns 2
至于标题中的Python方面,您将使用相同的语法:
虽然,我不使用xlrd,而是使用win32com.client通过python驱动Excel
from win32com.client import Dispatch
app_xl = Dispatch("Excel.Application")
wb = app_xl.Workbooks.Open("Path\\To\\Your\\Workbook.xlsx")
range = wb.Sheets(1).Range("name_a_range").Value
例如,我在我的一张表格上运行了这个:
>>> from win32com.client import Dispatch
>>> app_xl = Dispatch("Excel.Application")
>>> wb = app_xl.Workbooks.Open("C:\***\***\excel_vba_tests\getinfo.xlsx")
>>> rangeValues = wb.Sheets("Summary").Range("avgVolume").Value
>>> rangeValues
((u'Avg/Wk',), (Decimal('791517.25'),), (Decimal('796369'),), (Decimal('769922.8846'),), (Decimal('743311.549'),))
在这里,我打开了我的工作簿“getinfo.xlsx”,在我的名为“摘要”的工作表中,我能够获得我命名范围内的所有值“avgVolume”
这有用/您在寻找什么?由于我不太确定你的问题是什么,我认为我会尽可能多地点击。
答案 1 :(得分:0)
from xlsxwriter.utility import xl_rowcol_to_cell
cell = xl_rowcol_to_cell(1, 2) # C2
print(cell)