如何在python中使用xlsxwriter将数据写入/更新到现有XLSX工作簿的单元格中

时间:2013-09-17 12:12:20

标签: python excel xlsxwriter

我可以使用

写入新的xlsx工作簿
import xlsxwriter  
def write_column(csvlist):
    workbook = xlsxwriter.Workbook("filename.xlsx",{'strings_to_numbers': True})
    worksheet = workbook.add_worksheet()
    row = 0
    col = 0
    for i in csvlist:
        worksheet.write(col,row, i)
        col += 1

    workbook.close() 

但找不到在现有工作簿中编写的方法。 请帮助我使用xlswriter或任何替代方法在现有工作簿中编写/更新单元格。

5 个答案:

答案 0 :(得分:42)

来自xlsxwriter模块documentation的引用:

  

此模块不能用于修改或写入现有Excel   XLSX文件。

如果要修改现有的xlsx工作簿,请考虑使用openpyxl模块。

另见:

答案 1 :(得分:11)

您可以使用此代码打开(test.xlsx)文件并修改A1单元格,然后使用新名称保存

import openpyxl
xfile = openpyxl.load_workbook('test.xlsx')

sheet = xfile.get_sheet_by_name('Sheet1')
sheet['A1'] = 'hello world'
xfile.save('text2.xlsx')

答案 2 :(得分:1)

请注意,openpyxl没有用于操作和编辑图像的大型工具箱。 Xlsxwriter有图像方法,但另一方面不能导入现有的工作表......

我发现这适用于行... 我确定有一种方法可以为列做...

import openpyxl

oxl = openpyxl.load_workbook('File Loction Here')
xl = oxl.['SheetName']

x=0
col = "A"
row = x

while (row <= 100):
    y = str(row)
    cell = col + row
    xl[cell] = x
    row = row + 1
    x = x + 1

答案 3 :(得分:0)

您也可以通过xlwings完成

import xlwings as xw
for book in xlwings.books:
    print(book)

答案 4 :(得分:-7)

如果您在写入现有xls文件时遇到问题,因为它已经创建,您需要将检查部分放在下面:

PATH='filename.xlsx'
if os.path.isfile(PATH):
    print "File exists and will be overwrite NOW"
else:
    print "The file is missing, new one is created"

... 这里是您要添加的数据的一部分