glacierjin 发表于 2020-8-19 11:54:52

向已存在的xlsx文件中新增数据,不覆盖原数据。

想用python实现向已存在的xlsx文件中新增数据,不覆盖原数据。自己写了一段代码:

import xlsxwriter
import xlrd
from xlutils.copy import copy

wb = xlrd.open_workbook('test.xlsx')
newb = copy(wb)
newsheet = newb.get_sheet('sheet1')
k = len(newsheet.rows) #k为最后一行
newsheet.write(k, 0, 123456)

newb.save('test.xlsx')


得到的xlsx文件打不开报错,但如果把xlsx文件改成xls文件却可以做到。我已经下载了xlsxwriter模块。有哪位高手知道什么原因么?谢谢!

yhhpf 发表于 2020-8-19 13:17:45

newsheet.cell(k,0).value = '123456'
这样不行?

suchocolate 发表于 2020-8-19 13:19:54

只用过openpyxls:from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb['Sheet1']
row = ws.max_row
ws['a' + row] = 'data'

glacierjin 发表于 2020-8-19 15:26:07

yhhpf 发表于 2020-8-19 13:17
这样不行?

newsheet.cell(k,0).value = '123456'
AttributeError: 'Worksheet' object has no attribute 'cell'
报错了。

glacierjin 发表于 2020-8-19 15:26:46

suchocolate 发表于 2020-8-19 13:19
只用过openpyxls:

你的答案我没看懂。

suchocolate 发表于 2020-8-19 16:14:17

glacierjin 发表于 2020-8-19 15:26
你的答案我没看懂。

哪里不懂?

glacierjin 发表于 2020-8-20 08:58:51

領銜§龍尊 发表于 2020-8-19 15:34
import xlwt
import xlrd
from xlutils.copy import copy


你这个我百度搜到过,但解决不了我说的问题。只能用于xls文件而不是xlsx文件。

glacierjin 发表于 2020-8-20 10:01:15

suchocolate 发表于 2020-8-19 16:14
哪里不懂?

ws['a' + row] = 'data'
TypeError: can only concatenate str (not "int") to str

陈尚涵 发表于 2020-8-20 10:34:58

glacierjin 发表于 2020-8-20 10:01
ws['a' + row] = 'data'
TypeError: can only concatenate str (not "int") to str

不懂?自己在线看视频:


https://www.bilibili.com/video/av23697305/

suchocolate 发表于 2020-8-20 17:53:44

glacierjin 发表于 2020-8-20 10:01
ws['a' + row] = 'data'
TypeError: can only concatenate str (not "int") to str

sorry,漏了str转类型
ws['a' + str(row)] = 'data'
页: [1]
查看完整版本: 向已存在的xlsx文件中新增数据,不覆盖原数据。