pd dataframe 读取处理 有合并单元格的excel方式
创始人
2024-05-30 03:44:53
0

from pathlib import Path
import openpyxl

拆分所有的合并单元格,并赋予合并之前的值。

由于openpyxl并没有提供拆分并填充的方法,所以使用该方法进行完成

def unmerge_and_fill_cells(worksheet):
all_merged_cell_ranges = list(
worksheet.merged_cells.ranges
)

for merged_cell_range in all_merged_cell_ranges:merged_cell = merged_cell_range.start_cellworksheet.unmerge_cells(range_string=merged_cell_range.coord)for row_index, col_index in merged_cell_range.cells:cell = worksheet.cell(row=row_index, column=col_index)cell.value = merged_cell.value

读取原始xlsx文件,拆分并填充单元格,然后生成中间临时文件。

def unmerge_cell(filename):
wb = openpyxl.load_workbook(filename)
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
unmerge_and_fill_cells(sheet)
filename = filename.replace(“.xls”, “_temp.xls”)
wb.save(filename)
wb.close()

# openpyxl保存之后,再用pandas读取会存在公式无法读取到的情况,使用下面方式就可以了
# 如果你的excel不涉及公式,可以删除下面内容
# 原理为:使用windows打开excel,然后另存为一下
# from win32com.client import Dispatch
# xlApp = Dispatch("Excel.Application")
# xlApp.Visible = False
# xlBook = xlApp.Workbooks.Open(str(Path(".").absolute() / filename))  # 这里必须填绝对路径
# xlBook.Save()
# xlBook.Close()return filename

if name == ‘main’:
unmerge_cell(r"bench.xlsx")

相关内容

热门资讯

新城控股2025年上半年租金收... 7月9日,新城控股(601155)发布公告,2025年1-6月公司房地产出租情况显示,出租物业数量由...
康泰医学:两款产品获医疗器械注... 每经AI快讯,康泰医学7月9日公告,公司于近日取得了由河北省药品监督管理局颁发的两项医疗器械注册证,...
2025年京杭大运河全线贯通补... 转自:北京日报客户端新华社北京7月9日电记者9日从水利部获悉,2025年京杭大运河全线贯通补水任务于...
Gartner公布2025全球...   Hehson财经ESG评级中心提供包括资讯、报告、培训、咨询等在内的14项ESG服务,助力上市公...
“女子自曝孕期摆烂上班,老公是... 云南红河州“梦想红河”微信公众号消息,红河县联合调查组7月9日发布通报:近日,网传“红河县文旅局一员...
华盛锂电7月9日现1笔大宗交易...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!   7月9日,华盛锂...
“转”出新活力 扬帆正当时——... 转自:新华社民营经济是推进中国式现代化的生力军,是高质量发展的重要基础。当前,越来越多的民营企业正通...
新城控股2025年上半年租金收... 7月9日,新城控股(601155)发布公告,2025年1-6月公司房地产出租情况显示,出租物业数量由...
*ST亚振:因控股股东、实际控... *ST亚振7月9日公告,因控股股东、实际控制人吴涛要约收购期满,需进一步确认要约收购结果,根据《上海...
隆基绿能7月9日现1笔大宗交易...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!   7月9日,隆基绿...