【发布时间】:2021-04-05 14:34:27
【问题描述】:
我之前问过这个问题是出于不同的目的。从那以后我修改了这段代码。 我想将数据写入 Excel 文件是单独的行。行数和每行的数据是用户输入。头条没问题。数据被写入,但格式很尴尬。第一行数据从 A2 打印到 D2 很好。 第二行从 B3 打印到 E3。同样,第三行从 B4 打印到 F4,依此类推。 我想将第二行从 A3 打印到 D3,而不是从 B3 打印到 E3。我可以对这段代码做些什么来获得最佳解决方案?谢谢。
from openpyxl import Workbook
#Creates an Excel file from the scratch
wb = Workbook() #object of Workbook type
print(wb.active.title)
print(wb.sheetnames)
wb['Sheet'].title="Report_Amount"
sh1 = wb.active #Activate the sheet
sh1['A1'].value = "Item" #Writing into the cell
sh1['B1'].value = "Quantity"
sh1['C1'].value = "Price($)"
sh1['D1'].value = "Amount($)"
askrow = input("how many rows of data do you want to add: ")
askrow = int(askrow)
column1 = sh1.max_column
row1 = askrow
print(f'no. of columns : {column1}')
print(f'no. of rows : {row1}')
for k in range (2,row1+1):
inputItem = input("Enter Item Name: ")
sh1.cell(row=k, column=k - 1).value = inputItem
inputQuantity = input("Enter Quantity: ")
inputQuantity = int(inputQuantity)
sh1.cell(row=k, column=k).value = inputQuantity
inputPrice = input("Enter Price: ")
inputPrice = int(inputPrice)
sh1.cell(row=k, column=k + 1).value = inputPrice
sh1.cell(row=k, column=k + 2).value = ((sh1.cell(row=k, column=k).value) * sh1.cell(row=k, column=k + 1).value)
print("file saved")
wb.save("C:\\Users\\Ricky\\Desktop\\FirstCreatedPythonExcel1.xlsx")
【问题讨论】:
-
指定列时,如果您希望它每次都从同一列开始打印,则不需要
k。 A 列是 1,所以你可以做类似sh1.cell(row=k, column=1).value
标签: python excel user-input openpyxl write