擅长:python、mysql、java
<p>设法找到了解决办法</p>
<pre><code>def read_excel(path):
excel = None
if path.endswith('xlsx'):
excel = pd.ExcelFile(xlrd.open_workbook(path), engine='xlrd')
elif path.endswith('xls'):
excel = pd.ExcelFile(xlrd.open_workbook(path, formatting_info=True), engine='xlrd')
else:
raise ValueError("Could not read this type of data")
return excel
def parse_excel(excel_file):
sheet_0 = excel_file.book.sheet_by_index(0)
df = excel_file.parse(0, header=None)
return sheet_0, df
def fill_merged_na(sheet, dataframe):
for e in sheet.merged_cells:
rl, rh, cl, ch = e
base_value = sheet.cell_value(rl, cl)
dataframe.iloc[rl:rh, cl:ch] = base_value
return dataframe
</code></pre>
<p>一些重要的功能是打开excel文件,将formatting_info设置为True,以便同时读取格式,如合并单元格和fill_merged_na函数,该函数仅填充合并的nan值,但保留初始空单元格不变</p>