将新列写入现有的 xlsx 文件
Write a new column to existing xlsx file
我有一个 .xlsx
文件,其基本格式为多个 sheets (sheet1, sheet2, sheet3)
Col1 | Col2 | Col3 | Col4 | Col5
abc1 | abc2 | abc3 | abc4 | abc5
其中列数不同。我希望能够写一个新的 sheet 的名字。目前我有:
import openpyxl
def get_sheets():
wb = openpyxl.load_workbook('C:/Users/mydir/Desktop/myfile.xlsx')
sheets = wb.get_sheet_names()
sheet3 = "Sheet3"
sheet4 = "Sheet4"
for i in sheets:
if i == sheet3:
# Write column
elif i == sheet4:
# Write column in different sheet
else:
continue
def main():
get_sheets()
print
print "Script finished."
if __name__ == "__main__":
main()
openpyxl 是否允许将新列写入现有的 xlsx 文件,其中包含 header 并且行数等于 header 之后的行数?
要将新列添加到现有的 xlsx 文件,您可以编写一个 add_column()
函数,如下所示。这需要 sheet 名称和您要添加的值列表:
import openpyxl
def add_column(sheet_name, column):
ws = wb[sheet_name]
new_column = ws.max_column + 1
for rowy, value in enumerate(column, start=1):
ws.cell(row=rowy, column=new_column, value=value)
wb = openpyxl.load_workbook('C:/Users/mydir/Desktop/myfile.xlsx')
add_column('Sheet3', ['new header', 'value1', 'value2'])
wb.save('output.xlsx') # use the same name if required
您只需使用 wb['Sheet3']
即可按名称获取作品sheet。然后要获取工作中现有列的数量 sheet 使用 ws.max_column
获取最后一列索引。为您新添加的列添加 1
。
接下来使用 PYthon 的 enumerate()
函数处理列值列表。对于每一个,它都会为您提供要使用的行号和要写入单元格的值。
我有一个 .xlsx
文件,其基本格式为多个 sheets (sheet1, sheet2, sheet3)
Col1 | Col2 | Col3 | Col4 | Col5
abc1 | abc2 | abc3 | abc4 | abc5
其中列数不同。我希望能够写一个新的 sheet 的名字。目前我有:
import openpyxl
def get_sheets():
wb = openpyxl.load_workbook('C:/Users/mydir/Desktop/myfile.xlsx')
sheets = wb.get_sheet_names()
sheet3 = "Sheet3"
sheet4 = "Sheet4"
for i in sheets:
if i == sheet3:
# Write column
elif i == sheet4:
# Write column in different sheet
else:
continue
def main():
get_sheets()
print
print "Script finished."
if __name__ == "__main__":
main()
openpyxl 是否允许将新列写入现有的 xlsx 文件,其中包含 header 并且行数等于 header 之后的行数?
要将新列添加到现有的 xlsx 文件,您可以编写一个 add_column()
函数,如下所示。这需要 sheet 名称和您要添加的值列表:
import openpyxl
def add_column(sheet_name, column):
ws = wb[sheet_name]
new_column = ws.max_column + 1
for rowy, value in enumerate(column, start=1):
ws.cell(row=rowy, column=new_column, value=value)
wb = openpyxl.load_workbook('C:/Users/mydir/Desktop/myfile.xlsx')
add_column('Sheet3', ['new header', 'value1', 'value2'])
wb.save('output.xlsx') # use the same name if required
您只需使用 wb['Sheet3']
即可按名称获取作品sheet。然后要获取工作中现有列的数量 sheet 使用 ws.max_column
获取最后一列索引。为您新添加的列添加 1
。
接下来使用 PYthon 的 enumerate()
函数处理列值列表。对于每一个,它都会为您提供要使用的行号和要写入单元格的值。