python openpyxl实现获取列行单元值数值,单元格值获取列列号

import openpyxl
class execl_op:
    #绑定
    def __init__(self,fnmae):
        self.fname = fname
        self.wb = openpyxl.load_workbook(self.fname)
        sheets = self.wb.sheetnames
        self.sheet = sheets[0]
        self.ws = self.wb[self.sheet]
     #获取表格的总行数和总列数
    def get_row_clo_num(self):
        rows = self.ws.max_row
        columns = self.ws.max_column
        return rows,columns

    #获取表格某个单元格的值
    def get_cell_value(self,row,column):
        cell_value = self.ws.cell(row=row,column=column).value
        return cell_value

    #获取某列所有值
    def get_col_value(self,column):
        rows = self.ws.max_row
        column_data = []
        for i in range(1,rows+1):
            cell_value = self.ws.cell(row=i,column=column).value
            column_data.append(cell_value)
        return column_data
    #获取某行所有值
    def get_row_value(self, row):
        columns = self.ws.max_column
        row_data = []
        for i in range(1, columns + 1):
            cell_value = self.ws.cell(row=row, column=i).value
            row_data.append(cell_value)
        return row_data

    #根据单元格的值获取列号
    def get_cell_column(self):
        column = self.ws.max_column
        for i in range(1,column+1):
            cell_value = self.ws.cell(row=1,column=i).value
            if cell_value == 'SN' or cell_value == 'sn':
                return  i

    #设置某个单元格的值
    def set_cell_value(self,row,colum,cellvalue):
        def set_cell_value(self, row, colunm, cellvalue):
            try:
                self.ws.cell(row=row, column=colunm).value = cellvalue
                self.wb.save(self.file)
            except:
                self.ws.cell(row=row, column=colunm).value = "writefail"
                self.wb.save(self.file)





if __name__ == '__main__':
    num = input("请输入多少台设备:")
    fname = "E:\ks\dv%s.xlsx" %num
    first_row = execl_op(fname).get_row_value(1)
    print(first_row)
    second_col = execl_op(fname).get_col_value(5)
    print(second_col)
    column_num = execl_op(fname).get_cell_column()
    print('SN的列数是:%s' %column_num)

### 如何使用 OpenPyXL 读取 Excel 表格中的数据 #### 安装依赖库 为了能够顺利运代码,需先确保已安装 `openpyxl` 库。可以通过 pip 工具来完成安装。 ```bash pip install openpyxl ``` #### 加载工作簿并选择工作表 通过导入 `openpyxl` 模块加载现有的 Excel 文件,并选取特定的工作表作为操作对象[^1]。 ```python from openpyxl import load_workbook # 打开现有Excel文件 wb = load_workbook('example.xlsx') ws = wb['Sheet1'] # 假设要访问的是名为'Sheet1'的工作表 ``` #### 获取或整的数据 可以利用 worksheet 的 `rows` 或者 `columns` 属性遍历整个工作表的每一或是每一。需要注意的是这些属性返回的是生成器(generator),因此不能直接像表那样按索引获取元素[^4]。 ```python for row in ws.rows: for cell in row: print(cell.value) for column in ws.columns: for cell in column: print(cell.value) ``` #### 访问具体位置上的单元格 如果想要取得某一某一的具体数值,则可以直接按照坐标方式定位到对应的 Cell 对象再调用其 value 属性获得内容。 ```python cell_value = ws.cell(row=2, column=3).value # 取得第2第3 print(f"The value at (2,3) is {cell_value}") ``` #### 遍历指定范围内的/ 当只需要处理部分区域而非全部时,可定义起始与结束的位置来进迭代。 ```python start_row, end_row = 5, 8 start_col, end_col = 'A', 'C' for row in ws[start_row:end_row]: for col in range(ord(start_col)-ord('A'), ord(end_col)-ord('A')+1): print(ws[row[0].row][col].value) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值