import pandas as pddef txt_width(txt): num = sum(2 if "\u4e00" <= n <= "\u9fff" else 1 for n in str(txt)) return num # 字符串的显示宽度def align(txt,w): txt = str(txt) need = w - txt_width(txt) return txt + " " * need # 左对齐xls_path = r"E:\型号.xlsx"txt_path = r"E:\型号.txt"df = pd.read_excel(xls_path).dropna(how="all").fillna("") # 读取并清洗数据,删除空行,空值填充为空字符串col_widths = []for col in df.columns: header_w = txt_width(col) content_w = max(txt_width(str(n)) for n in df[col]) col_widths.append(max(header_w,content_w)+2) # 每一列的宽度lines = [''.join(align(c,w) for c,w in zip(df.columns,col_widths))] # 第一行for _,row in df.iterrows(): lines.append(''.join(align(v,w) for v,w in zip(row,col_widths))) # 每一行with open(txt_path,"w",encoding="utf-8") as f: f.write("\n".join(lines))print("已生成对齐版的txt文件")