python - sg.Output 中未对齐的 Excel 表的问题
问题描述
如何使用 sg.Output 将某些 excel 列(以前从文件 (pd.read_excel) 导入)的输出正确格式化为输出?
导入文件:
df = pd.read_excel('C:/file.xlsx', usecols="A,B,C")
sg.output 中的输出:
layout = [[sg.Text('Error Log', size=(43, 1), justification='center', text_color='#00226F',
font=("Helvetica", 19), relief=sg.RELIEF_RIDGE)],
[sg.Column(colum1), sg.Column(colum2)] ,
[sg.Frame('Error Code: [ XXXX ] ',
[[sg.Input(size=(31, 1), enable_events=True)],
[sg.Button('Display Error Code'),sg.Button("Sensor and Actuator Layout")],
[sg.Output(size=(81, 12), key='-OUTPUT-')]], title_color='#00226F')],[sg.Button('Submit', visible=False, bind_return_key=True)]]
和印刷:
print(df[df["CODE :"] == values[0] ].head())
我无法让列正确对齐:
提前致谢
解决方案
这里有两个问题
sg.Output
显示文本,不提供格式功能。因此,您必须先获得正确的文本样式,然后才能将其打印到sg.Output
. 调用to_string(index=False, justify='left')
DataFrame 的方法来移除索引并左对齐。- 要按字符很好地对齐,您应该使用等宽字体
sg.Output
,例如font=("Courier New", 11)
.
示例代码(带索引,格式可能不太好)
import pandas as pd
import PySimpleGUI as sg
data = {
"CODE :": ['1005'],
"ERROR :": ['DMA5(Lift Down) malfunction'],
"ACTION :": ['Replace the motor'],
}
df = pd.DataFrame(data)
layout = [
[sg.Text("Error Code: [ XXXX ]"),
sg.Input(size=(31, 1), key='-INPUT-')],
[sg.Output(size=(81, 12), font=('Courier New', 11), key='-OUTPUT-')],
[sg.Button('Submit', visible=False, bind_return_key=True)],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == 'Submit':
text = df[df["CODE :"] == values['-INPUT-']].head().to_string(index=False, justify='left')
print(text)
window.close()
推荐阅读
- python-3.x - Pickle data was truncated when importing more than one list
- sql - 如何将 varchar 转换为日期格式
- tensorflow - What is the proper use of Tensorflow dataset prefetch and cache options?
- c++ - 无法编译 WebView2 项目。需要自己的回调类模板
- android - Use Google Drive API without user's private information
- jquery - Get class attribute using closest /prev/ filter
- java - How do you subtract an arrays elements from a value while iterating through each element?
- nginx - Nginx proxy_pass alert handshake failure:SSL
- flutter - 使用 multi_image_picker http 上传图片
- css - flex 容器中溢出滚动元素的宽度为 100%