鱼C论坛

 找回密码
 立即注册
查看: 8419|回复: 11

[已解决]openpyxl如何在excel某一列追加数据

[复制链接]
发表于 2019-8-13 22:35:31 | 显示全部楼层 |阅读模式
5鱼币
例如有一个excel表,我们想在第三列或第四列追加数据,请问该如何写,谢谢
最佳答案
2019-8-13 22:35:32
本帖最后由 panheng 于 2019-8-17 18:51 编辑

复习,顺便赚点鱼币
from openpyxl import *
wb = Workbook()
sheet = wb.active
date = [1,2,3]   #需要写入的内容
for each in date:
    sheet.cell(row=date.index(each)+2,column=3,value=each)
    #关键字参数row为行,colunm为列,均从1开始。此为第三列第二行添加
    sheet.cell(row=date.index(each)+3,column=4,value=each)
    #此为第四列第三行添加
wb.save("pyxl_test.xlsx")


改成题主要的样子了@xue11

最佳答案

查看完整内容

复习,顺便赚点鱼币 改成题主要的样子了@xue11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-13 22:35:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 panheng 于 2019-8-17 18:51 编辑

复习,顺便赚点鱼币
from openpyxl import *
wb = Workbook()
sheet = wb.active
date = [1,2,3]   #需要写入的内容
for each in date:
    sheet.cell(row=date.index(each)+2,column=3,value=each)
    #关键字参数row为行,colunm为列,均从1开始。此为第三列第二行添加
    sheet.cell(row=date.index(each)+3,column=4,value=each)
    #此为第四列第三行添加
wb.save("pyxl_test.xlsx")


改成题主要的样子了@xue11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 09:22:38 | 显示全部楼层
沙发!
我给你看看......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 09:26:28 | 显示全部楼层
先获取原来单元格里的数据并把它储存在一个变量里,然后再把新的数据覆盖保存就OK了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 09:47:20 | 显示全部楼层
import openpyxl

wb = openpyxl.load_workbook(r'C:\Users\gwdsir\Desktop\demo.xlsx') #文件的路径
ws = wb.active #获取工作表
value = ws['A1'].value #获取工作表原来的值,这里以A1单元格为例
value = str(value) + '你想追加的字符串' #由于我这里的A1单元格不是字符串,要先转化成字符串
ws['A1'] = value #覆盖保存
wb.save('demo.xlsx')

你看这样行不行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-8-15 11:16:43 | 显示全部楼层
_2_ 发表于 2019-8-14 09:47
你看这样行不行?


例如我想在第3列中从第2行开始插入新的数据,并且A、B列均保留原有的数据,怎么弄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-15 13:27:45 | 显示全部楼层
先获取原来的数据,然后删除原来保存的数据,再用append()方法就行了(注意:append不能添加列表中的列表)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-15 13:29:19 | 显示全部楼层
你空间相册里的那个动图是什么弄的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-8-17 09:23:40 | 显示全部楼层
_2_ 发表于 2019-8-15 13:27
先获取原来的数据,然后删除原来保存的数据,再用append()方法就行了(注意:append不能添加列表中的列表) ...

能写下不,例如data = [1,2,3]插入第4列,从第二行开始
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-17 17:59:01 | 显示全部楼层
xue11 发表于 2019-8-17 09:23
能写下不,例如data = [1,2,3]插入第4列,从第二行开始

稍等片刻,我才看见......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-17 18:37:15 | 显示全部楼层
xue11 发表于 2019-8-17 09:23
能写下不,例如data = [1,2,3]插入第4列,从第二行开始
import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
data = [1,2,3]
ws.append(data)
value = len(data)
data = []
for i in range(value):
    data.append(None)
data.extend([4])
ws.append(data)
#第一行已经有数据了,所以append()方法会在下一行继续添加数据
#列表前三个数据是None,所以B1 B2 B3单元格并没有内容
wb.save('demo.xlsx')

我想包装成一个函数,但不知道该怎么给两个参数命名(起名字真是一个头疼的事),你还是自己做吧,以后调用更方便一些。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-13 22:52:57 | 显示全部楼层
panheng 发表于 2019-8-13 22:35
复习,顺便赚点鱼币

from openpyxl import *
wb = Workbook()
sheet = wb.active
date = [1,2,3]   #需要写入的内容
for each in date:
    n=1
    sheet.cell(row=n,column=3,value=each)
    n +=1
wb.save("pyxl_test.xlsx")

改了一下,原来的代码会自动去重,这样就不会去重
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 00:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表