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中实现对list做减法操作介绍
Jan 09 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
python保存文件方法小结
Jul 27 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
django中瀑布流写法实例代码
Oct 14 Python
django连接mysql数据库及建表操作实例详解
Dec 10 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 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 采集程序中常用的函数
2009/12/09 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
vue实现评论列表功能
2019/10/25 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
python提示No module named images的解决方法
2014/09/29 Python
python网络编程之读取网站根目录实例
2014/09/30 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
《珍珠泉》教学反思
2014/02/20 职场文书
大学生求职计划书
2014/04/30 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python