def show_excel(self): self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx") self.record_sheet = self.wb["記錄"] self.data_sheet = self.wb["數據"] style = ttk.Style() style.configure("MyTreeview1.Treeview", rowheight=25, borderwidth=2, relief="solid", font=('Arial', 10)) style.configure("MyTreeview1.Treeview.Heading", font=('Arial', 10, 'bold')) style.layout("MyTreeview1.Treeview", [('MyTreeview1.Treeview.treearea', {'sticky': 'nswe'})]) # 创建表格用于显示第一个工作表 columns1 = next(self.record_sheet.iter_rows(min_row=1, max_row=1, values_only=True)) treeview1 = ttk.Treeview(self.container1, columns=columns1, show="headings", style="MyTreeview1.Treeview") treeview1.grid(row=1, column=3, rowspan=1, padx=5, pady=5, sticky="nsew") treeview1.config(height=10) # 设置表格列的标题和宽度 for col in columns1: treeview1.heading(col, text=col) treeview1.column(col, width=100, anchor="center") # 显示第一个工作表的内容 for row in self.record_sheet.iter_rows(min_row=2, values_only=True): row_values = [str(cell) if cell is not None else "" for cell in row] if all(not bool(cell) for cell in row_values): continue treeview1.insert("", tk.END, values=row_values) # 创建表格用于显示第二个工作表 columns2 = next(self.data_sheet.iter_rows(min_row=1, max_row=1, values_only=True)) treeview2 = ttk.Treeview(self.container1, columns=columns2, show="headings") treeview2.grid(row=3, column=3, padx=5, pady=5, sticky="nsew") # 设置表格列的标题和宽度 for col in columns2: treeview2.heading(col, text=col) treeview2.column(col, width=100, anchor="center") treeview2.config(height=10) # 显示第二个工作表的内容 for row in self.data_sheet.iter_rows(min_row=2,values_only=True): row_values = [str(cell) if cell is not None else "" for cell in row] if all(not bool(cell) for cell in row_values): continue treeview2.insert("", tk.END, values=row_values)這段代碼未將excel數據顯示完整,有的數據列被窗口擋住了,怎麽修改
时间: 2024-02-14 11:14:36 浏览: 23
可以尝试修改以下几个地方:
1. 修改表格的高度:在创建表格时,通过 `treeview1.config(height=10)` 和 `treeview2.config(height=10)` 来设置表格的高度,可以将这个值调大一些,比如改成 `treeview1.config(height=20)`。
2. 修改表格的位置:可以将表格的位置调整一下,让它们不被窗口挡住。比如将第一个表格的 `row` 改成 2,第二个表格的 `row` 改成 4,或者将它们的 `column` 值调整一下。
3. 调整列宽:可以通过 `treeview1.column(col, width=100, anchor="center")` 和 `treeview2.column(col, width=100, anchor="center")` 来调整列宽,将宽度调大一些,比如改成 `treeview1.column(col, width=150, anchor="center")`。
通过以上修改,可以让表格显示更完整。另外,如果表格还是显示不完整,可以尝试将窗口的大小调整一下,让它更大一些。
相关问题
def show_excel(self): self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx") self.record_sheet = self.wb["記錄"] self.data_sheet = self.wb["數據"] rows = self.record_sheet.iter_rows(min_row=1, values_only=True) records = [] header = next(rows) # 将数据插入到文本框中 for row in records: row_str = '' for col in row: row_str += str(col) + '\t' self.result_text.insert(tk.END, row_str + '\n')怎麽將excel表名是數據表中所有内容顯示到文本框中
要将Excel表名为“數據表”中的所有内容显示到文本框中,您可以使用以下代码:
```
def show_excel(self):
self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx")
self.data_sheet = self.wb["數據表"] # 将工作表命名为"數據表"
rows = self.data_sheet.iter_rows(min_row=1, values_only=True)
records = []
header = next(rows)
# 将数据插入到文本框中
for row in rows:
row_str = ''
for col in row:
row_str += str(col) + '\t'
self.result_text.insert(tk.END, row_str + '\n')
```
在此代码中,我们将工作表命名为“數據表”,并使用该名称从工作簿中获取数据表。然后,我们使用该数据表中的所有行来填充记录列表,并将其插入到文本框中。请注意,这里我们使用的是数据表的所有行,而不是只使用第一行之后的行,因为我们想要显示所有数据。
import os import pandas as pd from openpyxl import load_workbook from openpyxl.utils.dataframe import dataframe_to_rows class ExcelProcessor: def __init__(self, path): self.path = path def process_excel(self): for root, dirs, files in os.walk(self.path): for filename in files: if filename.endswith('.xlsx') or filename.endswith('.xls'): filepath = os.path.join(root, filename) self.process_file(filepath) def process_file(self, filepath): wb = load_workbook(filepath) for sheet in wb: if sheet.title == '系数表': df = pd.DataFrame(sheet.values) df_t = df.T df_t.columns = df_t.iloc[0] df_t = df_t[1:] self.add_to_sheet(wb, df_t, '系数表_T') wb.save(filepath) def add_to_sheet(self, wb, df, sheet_name): try: ws = wb[sheet_name] except KeyError: ws = wb.create_sheet(sheet_name) for r in dataframe_to_rows(df, index=False, header=True): ws.append(r) for col in ws.columns: for cell in col: if cell.data_type == 'f': cell.value = cell.value return ws上述代码如何实例化使用
这段代码定义了一个ExcelProcessor类,用于处理指定路径下的Excel文件。要实例化该类,可以按如下方式进行:
1. 导入ExcelProcessor类:`from excel_processor import ExcelProcessor`
2. 创建ExcelProcessor实例对象,例如:`processor = ExcelProcessor('/path/to/excel/files')`
3. 调用ExcelProcessor的方法进行Excel文件处理,例如:`processor.process_excel()`
需要注意的是,这段代码中的Excel文件处理方法是根据指定路径下的所有Excel文件进行遍历处理的。因此,在实例化ExcelProcessor对象时需要传入正确的路径参数。另外,为了能够运行该代码,还需要将代码保存在名为'excel_processor.py'的文件中,并在实例化ExcelProcessor对象时正确导入该类。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)