【发布时间】:2020-01-19 02:47:56
【问题描述】:
我有一个 excelsheet,同一张表上有多个表格。 这些表具有不同的列号和不同的行号。 不过好在表头有背景色,表格内容是白色背景。
我想知道是否可以使用 xlrd 或其他一些包将这些表中的每一个作为单独的数据框读取。
现在想到的方法很长,可能并不理想。
例如:
import xlrd
book = xlrd.open_workbook("some.xls", formatting_info=True)
sheets = book.sheet_names()
for index, sh in enumerate(sheets):
sheet = book.sheet_by_index(index)
rows, cols = sheet.nrows, sheet.ncols
for row in range(rows):
for col in range(cols):
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
if bgx != 64:
Header_row = rownum
然后遍历这个 Header_row 并获取所有列值并将它们作为数据框列名。 然后继续解析第一列的行,直到遇到空白单元格或只有一个或两个非空单元格的行。
如您所见,这有点冗长,可能不是最佳方式。
【问题讨论】:
-
尝试使用 pandas,在这里找到类似问题的答案:stackoverflow.com/q/34184841/10003985
标签: python python-3.x xlrd