使用python代码,对excel文件“临时文件\推送名单.xlsx”操作,遍历此excel的所有sheet,当sheet名为“总行”的时候,读取表头为“接收人工号”,和“推送内容”(这一表头名称是合并单元格,合并的是多列的所在数据)的这些列数据data,定义一个字符串strtext,一个字典dictext,遍历数据data(每行对于表头为“推送内容”的这些单元格数据,进行字符串符拼接(这些单元格里文本数据有可能换行)生成strtext(作为字典dictext的value值),把每行的“接收人工号”列的单元格数据作为字典dictext的key值,继续遍历next并重置字符串strtext)相关所有代码
时间: 2024-03-02 11:51:52 浏览: 125
好的,以下是代码实现:
```python
import openpyxl
# 打开Excel文件
workbook = openpyxl.load_workbook('临时文件\\推送名单.xlsx')
# 遍历所有sheet
for sheetname in workbook.sheetnames:
if sheetname == '总行':
worksheet = workbook[sheetname]
# 获取表头
header = []
for cell in worksheet[1]:
header.append(cell.value)
# 获取接收人工号和推送内容对应的列号
receiver_col, push_content_col = None, None
for index, column in enumerate(header):
if column == '接收人工号':
receiver_col = index + 1
elif column == '推送内容':
push_content_col = index + 1
# 遍历数据
dictext = {}
strtext = ''
for row in worksheet.iter_rows(min_row=2):
receiver = row[receiver_col-1].value
push_content = row[push_content_col-1].value
if receiver not in dictext:
dictext[receiver] = ''
cell_text = str(push_content)
if cell_text != 'None':
strtext += cell_text.strip() + '\n'
else:
strtext += '\n'
dictext[receiver] = strtext.strip()
if cell_text == 'None':
strtext = ''
```
上面的代码实现了对 Excel 文件的操作,并实现了对数据的提取和拼接,最终得到了字典 `dictext`,其中以每行的“接收人工号”作为 key,以拼接后的字符串作为 value。
阅读全文