python处理excel文件
因为懂你,所以永恒!
--python
如果你也和我一样,想通过python处理excel文件。那这篇文章基本上可以满足你的需要。代码中的文件路径可以自己修改!
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Alignment
from openpyxl.styles import Font
import pandas as pd
import os
# 创建新工作簿
wb = Workbook()
ws = wb.active
ws.title = "Component List"
# 设置字体
ws.font = Font(name='Arial', size=12, bold=True, color='FF0000')
# 设置列宽 (可选)
for col in range(1, 8): # 设置前7列
letter = get_column_letter(col)
ws.column_dimensions[letter].width = 30
# 定义表头
headers = ["Item", "Quantity", "Part Reference", "PCB", "电性件两套所", "考核板两套所", "现有采购"]
ws.append(headers)
# 添加数据行(示例):直接添加第二列到第七列的数据,第一列由计数器自动生成
data_rows = [
[10-1, "REF001", "PCB001", "Elec001", "Test001", "Purchase001"],
[5-2, "REF002", "PCB002", "Elec002", "Test002", "Purchase002"],
[5-3, "REF003", "PCB003", "Elec003", "Test003", "Purchase003"]
]
# 初始化计数器
item_counter = 1
# 逐行添加数据并动态生成 Item 列的值
for row in data_rows:
full_row = [item_counter] + row # 将 Item 列和其余列拼接在一起
ws.append(full_row)
item_counter += 1
left_alignment = Alignment(horizontal='left', vertical='center', wrap_text=True)
for row in ws.iter_rows( min_row=1, max_row=1):
for cell in row:
cell. alignment = left_alignment # 应用对齐设置
# 保存文件
wb.save("Component_list.xlsx")
print("Component list has been created and saved as 'Component_list.xlsx'.")
# 读取文件 (可选)
df = pd.read_excel("D:/PyQt_Prj/Component_list.xlsx")
# 调整 DataFrame 的显示格式,使数据对齐并去除索引列
print(df.to_string(index=False)) # 去掉默认的索引列
vscode运行结果:
生成的excel中内容如下:
Enjoy it!