python3中关于excel追加写入格式被覆盖问题(实例代码)


Posted in Python onJanuary 10, 2020

关于python3中的追加写入excel问题,这个问题坑了我几小时,其实加一个参数即可。

因为之前有写好的excel,想追加写入,但是写入后却只有写入后的单元格格式,之前写的完全消失。

以下是我的代码

这代码可以用是我做的一个爬虫维护项目:

def times():
  User_Agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'
  headers = {
    'User-Agent': User_Agent
  }
  search_url = 'https://www.cnss.com.cn/u/cms/www/indexJson/bdi_month.json?v=1577414941357'
  request = urllib.request.Request(search_url, headers=headers)
  response = urllib.request.urlopen(request)
  content = response.read().decode('utf-8')
  content = ''.join(content)
  # print(content)
  # index = re.findall('index":"(.*?)"', content) # 获取指数
  date = re.findall('date":"(.*?)"', content) # 获取时间
  time = []
  i = 0
  start_date = date[0].replace('.', '年')
  start_date.replace('.', '月')
  end_date = date[-1].replace('.', '年')
  end_date.replace('.', '月')
  # print(index,date,start_date,end_date)
  for j in range(int(len(date) / 1)):
    temp = date[i:i + 1]
    i += 1
    time.append(temp)
    hears = start_date + '日' + '——' + end_date + '日' + '嘻嘻嘻'
    title=['交易日期','干散货指数(BDI)','海岬型指数(BCI)','巴拿马型指数(BPI)','超灵便型船运价指数(BSI)','灵便型船指数(BHSI)']
    sheet1.write_merge(0, 0+0,0,0+5, hears, style)
    for ti in range(len(title)):
      sheet1.write(1, ti+0, title[ti], style)
    for x in range(len(time)):
      for y in range(len(time[x])):
        sheet1.write(x + 2, 0, time[x][y], style)
    f.save('你想放的路径.xls')

上面的代码还是可以继续使用

标题xlwt的缺陷:

xlwt只能创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。但是大多数情况下我们希望的是读入一个excel文件,然后进行修改或追加,这个时候就需要xlutils了。

xlutils的简单使用:

接下来的部分就是关键所在了

formatting_info=True这个参数能保留原excel格式

def write_excel_xls_append(path, value,u):
  index = len(value) # 获取需要写入数据的行数
  workbook = xlrd.open_workbook('./result/30波罗的海干散货运价指数.xls',formatting_info=True) # 打开工作簿
  sheets = workbook.sheet_names() # 获取工作簿中的所有表格
  worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
  rows_old = worksheet.ncols # 获取表格中已存在的数据的行数
  new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
  styleS = xlwt.XFStyle()
  alignment = xlwt.Alignment()
  alignment.horz = xlwt.Alignment.HORZ_CENTER
  alignment.vert = xlwt.Alignment.VERT_CENTER
  styleS.alignment = alignment
  new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
  for i in range(0, index):
    for j in range(0, len(value[i])):
      new_worksheet.write(i+2, u+1, value[i][j],styleS) # 追加写入数据,注意是从i+rows_old行开始写入
  new_workbook.save(path) # 保存工作簿

然后你就会发现你的excel简直完美~~~

总结

以上所述是小编给大家介绍的python3中关于excel追加写入格式被覆盖问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中itertools模块用法详解
Sep 25 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
Python爬虫代理IP池实现方法
Jan 05 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
单链表反转python实现代码示例
Feb 08 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
python pip源配置,pip配置文件存放位置的方法
Jul 12 Python
python DataFrame转dict字典过程详解
Dec 26 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
mac使用python识别图形验证码功能
Jan 10 #Python
python列表推导和生成器表达式知识点总结
Jan 10 #Python
pytorch的梯度计算以及backward方法详解
Jan 10 #Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 #Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 #Python
Python 实现将数组/矩阵转换成Image类
Jan 09 #Python
python 实现将Numpy数组保存为图像
Jan 09 #Python
You might like
PHP中防止SQL注入实现代码
2011/02/19 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
用 JSON 处理缓存
2007/04/27 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python pymongo模块常用操作分析
2018/09/01 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
基于python实现从尾到头打印链表
2019/11/02 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
德国家具折扣店:POCO
2020/02/28 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
自我评价的正确写法
2013/09/19 职场文书
大学生实习感言
2014/01/16 职场文书
2015年护士节活动总结
2015/02/10 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL