def show_excel(self): # 清空文本框内容 self.result_text.delete(1.0, tk.END) self.result_text2.delete(1.0, tk.END) # 获取出入库明细的表格数据 rows = list(self.record_sheet.rows) cols = list(self.record_sheet.columns) # 在文本框1中显示表格 for i in range(len(rows)): for j in range(len(cols)): cell_value = str(rows[i][j].value) if cell_value is None: cell_value = '' if isinstance(rows[i][j].value, datetime.datetime): cell_value = rows[i][j].value.strftime('%Y-%m-%d') self.result_text.insert(tk.END, cell_value + '\t') self.result_text.insert(tk.END, '\n') # 获取库存明细的表格数据 rows = list(self.data_sheet.rows) cols = list(self.data_sheet.columns) # 在文本框2中显示表格 for i in range(len(rows)): for j in range(len(cols)): cell_value = str(rows[i][j].value) if cell_value is None: cell_value = '' if isinstance(rows[i][j].value, datetime.datetime): cell_value = rows[i][j].value.strftime('%Y-%m-%d') self.result_text2.insert(tk.END, cell_value + '\t') self.result_text2.insert(tk.END, '\n')將這個代碼中顯示數據的表格設置第一行列標題的寬度
时间: 2024-03-23 22:38:55 浏览: 57
python 中-self-标识符和self标识符.docx
你可以在显示表格之前,先将第一行的列标题显示出来,并设置它们的宽度。例如:
```
from openpyxl.utils import get_column_letter
# 获取第一行的列标题
header_row = list(sheet.rows)[0]
# 显示列标题,并设置它们的宽度
for cell in header_row:
col_letter = get_column_letter(cell.column)
cell_value = str(cell.value) if cell.value is not None else ''
self.result_text.insert(tk.END, cell_value + '\t')
sheet.column_dimensions[col_letter].width = len(cell_value) + 2
self.result_text.insert(tk.END, '\n')
# 显示数据
for row in sheet.iter_rows(min_row=2):
for cell in row:
cell_value = str(cell.value) if cell.value is not None else ''
self.result_text.insert(tk.END, cell_value + '\t')
self.result_text.insert(tk.END, '\n')
```
其中,sheet 是你要显示的工作表对象,self.result_text 是你要显示数据的文本框。我们先获取第一行的列标题,然后根据每个单元格的内容计算出它们应该具有的宽度,并设置到对应的列。最后再显示数据。
阅读全文