excel动态获取sheet页单元格内容

文章介绍了如何在Excel中通过ADDRESS函数和INDIRECT函数动态获取特定sheet页(如PJ1)的B1单元格内容。使用ADDRESS函数拼接单元格地址,然后用INDIRECT函数解析这个动态地址,从而实现跨sheet的数据引用。
摘要由CSDN通过智能技术生成

1、问题描述

如下图所示,名称列可能是动态赋值的,名称列的内容有对应新的sheet页,如名称为PJ1及其PJ1的sheet页,最终需要获取PJ1的sheet页的B1单元格的内容。

 如下图所示,是要获取PJ1的sheet页的B1的值。

 2、解决办法

如下图所示,使用excel的ADDRESS()函数,可以动态拼接出要获取所在的sheet页B1单元格的地址,使用excel的INDIRECT()函数,获取动态地址对应单元格的内容。

 如上图所示,ADDRESS(1,2,1,TRUE,B4),可以拼接出'PJ1'!$B$1动态地址;使用INDIRECT(ADDRESS(1,2,1,TRUE,B4)),可以获取动态地址'PJ1'!$B$1,即名称PJ1的sheet页对应B1单元格的内容。

3、函数说明

(1)、ADDRESS(1,2,1,TRUE,B4),即获取当前sheet页B4单元格的值(即PJ1)对应的sheet页中的第1行第2列的值动态地址,即'PJ1'!$B$1

ADDRESS(row_num, column_num, [abs_num], [A1], [sheet_text])
//row_num     必需。 一个数值,指定要在单元格引用中使用的行号。
//column_num  必需。 一个数值,指定要在单元格引用中使用的列号。
//abs_num     可选。 一个数值,指定要返回的引用类型。
              //返回的引用类型            
              //1 或省略,绝对值
              //2 绝对行号,相对列标
              //3 相对行号,绝对列标
              //4 相对值
//A1         可选。 一个逻辑值,指定 A1 或 R1C1 引用样式。
              //在 A1 样式中,列和行将分别按字母和数字顺序添加标签。 
              //在 R1C1 引用样式中,列和行均按数字顺序添加标签。 
              //如果参数 A1 为 TRUE 或被省略,则 ADDRESS 函数返回 A1 样式引用;
              //如果为 FALSE,则 ADDRESS 函数返回 R1C1 样式引用。
              //如 A1 样式为$B$1,即获取B1单元格的值。
              //如 R1C2  样式,即获取第1行第2列对应单元格的值。
//sheet_text  可选。 一个文本值,指定引用的sheet页的名称。 

 注意:excel中$B$1表示列和行绝对引用,即将此内容复制到其他单元格或下拉单元格时,还一直获取的是B1单元格的值;$B1表示B列是绝对引用,不是绝对应用,单元格下拉时,可能会变成B2、B3等,用于设置ADDRESS()的abs_num参数,即设置返回值引用类型。

(2)、INDIRECT('PJ1'!$B$1),即获取名称为PJ1的sheet页中B1单元格的值。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用 tksheet 中的 `get_row_style` 方法来获取指定行的单元格的背景色。该方法需要传入两个参数:sheet_name 和 row_index,其中 sheet_name 是要获取样式的工作表名称,row_index 是要获取样式的行索引。 下面是一个示例代码,演示如何获取第二个工作表中第三行的单元格的背景色: ```python import tksheet # 创建一个 tksheet 表格 sheet = tksheet.Sheet() # 在 sheet 中添加一个名为 'Sheet2' 的工作表,并在其中添加一些数据和样式 sheet.add_sheet('Sheet2') sheet.set_cell_style(2, 0, bgcolor='red') sheet.set_cell_style(2, 1, bgcolor='green') sheet.set_cell_style(2, 2, bgcolor='blue') # 获取 'Sheet2' 工作表中第三行的样式 style = sheet.get_row_style('Sheet2', 2) # 输出第三行每个单元格的背景色 for i, bg_color in enumerate(style['bg']): print(f"cell({2}, {i}): {bg_color}") ``` 这段代码会输出以下内容: ``` cell(2, 0): #ff0000 cell(2, 1): #00ff00 cell(2, 2): #0000ff ``` 可以看到,它成功地获取了第二个工作表中第三行单元格的背景色。 ### 回答2: 在Python中使用tksheet建立的表格,可以通过以下步骤获取指定Sheet中特定行的单元格的背景色: 1. 首先,导入必要的模块: ```python from tksheet import Sheet ``` 2. 创建一个Sheet对象并加载指定的数据: ```python sheet = Sheet(root) sheet.set_sheet_data(data) ``` 3. 获取指定Sheet中的背景色信息: ```python row_index = 0 # 获取第一行 cell_index = 3 # 获取第四列 bg_color = sheet.sheet_data[row_index][cell_index]["bg"] # 获取指定单元格的背景色 ``` 在上述代码中,我们先通过指定的行索引和列索引来获取指定的单元格。然后通过访问sheet_data属性获取单元格的背景色。sheet_data是一个二维列表,表示整个表格的数据,其中每个单元格的背景色都存储在一个名为"bg"的字典中。 通过上述步骤,你可以获取到指定Sheet中指定行的单元格的背景色,并将其存储在变量bg_color中。可以按照实际需求对变量进行进一步处理或使用。 ### 回答3: 在Python中,通过使用tksheet库来建立的表格,可以通过以下步骤获取对应Sheet中指定行的单元格的背景色: 1. 首先,确保已经安装了tksheet库。可以使用以下命令来安装该库: ```python pip install tksheet ``` 2. 导入所需的模块: ```python import tksheet from tkinter import Tk ``` 3. 创建Tkinter窗口: ```python root = Tk() ``` 4. 创建一个tksheetSheet对象: ```python sheet = tksheet.Sheet(root) ``` 5. 加载Sheet数据: ```python # 使用load_sheet_data方法加载数据 sheet.load_sheet_data(data) ``` 6. 获取指定行的单元格背景色: ```python # 使用get_cell_attribute方法获取指定行的单元格背景色 row = 2 # 指定行号,假设为第3行 column = 1 # 指定列号,假设为第2列 cell_bg_color = sheet.get_cell_attribute(row, column, "background") ``` 在上述代码中,我们通过指定行号和列号来获取特定单元格的背景色。其中,row和column分别代表行号和列号,"background"是属性参数,用于获取单元格的背景色。 7. 显示结果: ```python print(cell_bg_color) ``` 以上代码会输出指定行指定列单元格的背景色。 最后,记得添加以下代码以使结果窗口正常显示: ```python sheet.grid() root.mainloop() ``` 通过以上步骤,就可以获取python中tksheet建立的表格中指定行指定列单元格的背景色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值