value = sh.cell(row=row, column=1).value
时间: 2023-08-08 15:07:22 浏览: 122
`value = sh.cell(row=row, column=1).value` 这行代码使用 `sh.cell()` 方法获取工作表 `sh` 中第 `row` 行、第1列(即 A 列)的单元格对象,然后使用 `.value` 属性获取该单元格的值。
在上面的代码中,我们使用了一个 `for` 循环遍历工作表的所有行。对于每一行,我们使用 `sh.cell(row=row, column=1)` 获取第1列(即 A 列)的单元格对象,并使用 `.value` 属性获取该单元格的值。最终,`value` 变量中存储了当前行第1列的值。
相关问题
代码增加填充单元格后合并Sheet表:import openpyxl # 读取存贷款数据.xlsx workbook = openpyxl.load_workbook('存贷款数据.xlsx') # 遍历每个Sheet表,并将Sheet表名写入到每行N列的单元格 for sheet_name in workbook.sheetnames: sheet = workbook[sheet_name] max_row = sheet.max_row max_column = sheet.max_column for row in range(3, max_row): for column in range(1, max_column + 1): if column == max_column: sheet.cell(row=row, column=column+1).value = sheet_name else: sheet.cell(row=row, column=column).value = sheet.cell(row=row, column=column).value # 保存新的工作簿 workbook.save('存贷款数据(新).xlsx')
好的,以下是增加填充单元格后合并Sheet表的示例代码:
```python
import pandas as pd
import openpyxl
# 读取Excel文件
workbook = openpyxl.load_workbook('存贷款数据.xlsx')
# 遍历每个Sheet表,并将Sheet表名写入到每行N列的单元格
for sheet_name in workbook.sheetnames:
sheet = workbook[sheet_name]
max_row = sheet.max_row
max_column = sheet.max_column
for row in range(3, max_row):
for column in range(1, max_column + 1):
if column == max_column:
sheet.cell(row=row, column=column+1).value = sheet_name
else:
sheet.cell(row=row, column=column).value = sheet.cell(row=row, column=column).value
# 保存新的工作簿
workbook.save('存贷款数据(新).xlsx')
# 获取所有Sheet表名
file = pd.ExcelFile('存贷款数据(新).xlsx')
sheet_names = file.sheet_names
# 合并所有Sheet表
df_merged = pd.concat([file.parse(sheet) for sheet in sheet_names])
# 将合并后的数据保存到新的Excel文件中
df_merged.to_excel('merged.xlsx', index=False)
```
在上面的示例中,我们增加了使用openpyxl库来填充单元格的代码。首先,我们使用load_workbook函数读取Excel文件,并遍历每个Sheet表。然后,我们使用max_row和max_column属性获取Sheet表的行数和列数,使用cell函数访问和修改单元格的值。注意,我们使用了worksheet.cell()函数而不是worksheet[row][column]来访问单元格,因为后者在openpyxl中已经被弃用。接下来,我们使用concat函数来合并所有Sheet表,并将合并后的数据保存到新的Excel文件中。请确保您已经安装了Pandas和openpyxl库,并且将存贷款数据.xlsx文件放在当前工作目录中。
if self.data_sheet.cell(row=1, column=1).value is None: self.data_sheet.cell(row=1, column=1, value="PEGA-料号") if self.data_sheet.cell(row=1, column=2).value is None: self.data_sheet.cell(row=1, column=2, value="數量") if self.data_sheet.cell(row=1, column=3).value is None: self.data_sheet.cell(row=1, column=3, value="日期") if self.data_sheet.cell(row=1, column=4).value is None: self.data_sheet.cell(row=1, column=4, value="時間") if self.data_sheet.cell(row=1, column=5).value is None: self.data_sheet.cell(row=1, column=5, value="班別") if self.data_sheet.cell(row=1, column=6).value is None: self.data_sheet.cell(row=1, column=6, value="登記人") if self.data_sheet.cell(row=1, column=7).value is None: self.data_sheet.cell(row=1, column=7, value="單價") if self.data_sheet.cell(row=1, column=8).value is None: self.data_sheet.cell(row=1, column=8, value="品名") if self.data_sheet.cell(row=1, column=9).value is None: self.data_sheet.cell(row=1, column=9, value="儲位") if self.data_sheet.cell(row=1, column=10).value is None: self.data_sheet.cell(row=1, column=10, value="入庫單號")這怎麽優化
可以将这段代码改写为一个循环,避免重复的 if 语句。例如:
```
headers = ["PEGA-料号", "數量", "日期", "時間", "班別", "登記人", "單價", "品名", "儲位", "入庫單號"]
for col in range(1, 11):
if self.data_sheet.cell(row=1, column=col).value is None:
self.data_sheet.cell(row=1, column=col, value=headers[col-1])
```
这样代码更简洁,也更易于维护。