python - 写入现有的 excel 文件

标签 python excel

我有一个 .xlsx 文件,其中有多个工作表(包含一些内容)。我想将一些数据写入特定的工作表,比如 sheet1 和 sheet5。现在我正在使用 xlrd、xlwt 和 xlutils copy() 函数来完成它。但是有没有办法通过以附加模式打开文件并添加数据并保存它(就像我们对文本/CSV 文件所做的那样)?

这是我的代码:

rb = open_workbook("C:\text.xlsx",formatting_info='True')
wb = copy(rb)
Sheet1 = wb.get_sheet(8)
Sheet2 = wb.get_sheet(7)
Sheet1.write(0,8,'Obtained_Value')
Sheet2.write(0,8,'Obtained_Value')
value1 = [1,2,3,4]  
value2 = [5,6,7,8]
for i in range(len(value1)):
 Sheet1.write(i+1,8,value1[i])
for j in range(len(value2)):
 Sheet2.write(j+1,8,value2[j])
wb.save("C:\text.xlsx")

最佳答案

您可以使用 openpyxl 模块或使用 xlwings 模块来完成

  1. 使用 openpyxl

    from openpyxl import workbook #pip install openpyxl
    from openpyxl import load_workbook
    
    wb = load_workbook("C:\text.xlsx")
    sheets = wb.sheetnames
    Sheet1 = wb[sheets[8]]
    Sheet2 = wb[sheets[7]]
    #Then update as you want it
    Sheet1 .cell(row = 2, column = 4).value = 5 #This will change the cell(2,4) to 4
    wb.save("HERE PUT THE NEW EXCEL PATH") 
    

    text.xlsx 文件将用作模板,text.xlsx 文件中的所有值连同更新后的值将保存在新文件中

  2. 使用 xlwings

     import xlwings 
     wb = xlwings.Book("C:\text.xlsx")  
     Sheet1 = wb.sheets[8]
     Sheet2 = wb.sheets[7]
     #Then update as you want it
     Sheet1.range(2, 4).value = 4 #This will change the cell(2,4) to 4
     wb.save()
     wb.close()
    

    这里的文件将在 text.xlsx 文件中更新,但如果你想拥有该文件的副本,你可以使用下面的代码

    shutil.copy("C:\text.xlsx", "C:\newFile.xlsx") #copies text.xslx file to newFile.xslx
    

    并使用

    wb = xlwings.Book("C:\newFile.xlsx") instead of wb = xlwings.Book("C:\text.xlsx")
    

    作为两个模块的用户,我更喜欢第二个而不是第一个。

关于python - 写入现有的 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724364/

相关文章:

python - 使用 Python 和 Mechanize 以随机形式填充

python - 如何在 python 中使用循环有效地进行特征工程?

python2 : merge a list of csv elements

python - 需要从列表中删除重复项。 Set() 函数不起作用。也不是 for 循环方法

excel - 加入 Power Query 中的不平等

vba - 严格使用 Excel 打开 .xlsm

python - 如何使用 Flask 构建离线网络应用程序?

python - 高斯 SVM 参数 C 和 gamma

c# - 如何将数据插入Excel工作表

vba - Excel VBA复制粘贴错误