鱼C论坛

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

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

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

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



改成题主要的样子了@xue11

最佳答案

查看完整内容

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

使用道具 举报

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

复习,顺便赚点鱼币
  1. from openpyxl import *
  2. wb = Workbook()
  3. sheet = wb.active
  4. date = [1,2,3]   #需要写入的内容
  5. for each in date:
  6.     sheet.cell(row=date.index(each)+2,column=3,value=each)
  7.     #关键字参数row为行,colunm为列,均从1开始。此为第三列第二行添加
  8.     sheet.cell(row=date.index(each)+3,column=4,value=each)
  9.     #此为第四列第三行添加
  10. 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 | 显示全部楼层
  1. import openpyxl

  2. wb = openpyxl.load_workbook(r'C:\Users\gwdsir\Desktop\demo.xlsx') #文件的路径
  3. ws = wb.active #获取工作表
  4. value = ws['A1'].value #获取工作表原来的值,这里以A1单元格为例
  5. value = str(value) + '你想追加的字符串' #由于我这里的A1单元格不是字符串,要先转化成字符串
  6. ws['A1'] = value #覆盖保存
  7. 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列,从第二行开始
  1. import openpyxl

  2. wb = openpyxl.Workbook()
  3. ws = wb.active
  4. data = [1,2,3]
  5. ws.append(data)
  6. value = len(data)
  7. data = []
  8. for i in range(value):
  9.     data.append(None)
  10. data.extend([4])
  11. ws.append(data)
  12. #第一行已经有数据了,所以append()方法会在下一行继续添加数据
  13. #列表前三个数据是None,所以B1 B2 B3单元格并没有内容
  14. 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, 2024-3-29 17:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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