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 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
python文件和目录操作函数小结
Jul 11 Python
python中迭代器(iterator)用法实例分析
Apr 29 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
python中requests小技巧
May 10 Python
django_orm查询性能优化方法
Aug 20 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
Python多线程 Queue 模块常见用法
Jul 04 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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编程语言开发动态WAP页面
2006/10/09 PHP
使用PHP模拟HTTP认证
2006/10/09 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
Python设计模式之代理模式实例
2014/04/26 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
python中随机函数random用法实例
2015/04/30 Python
详解python单例模式与metaclass
2016/01/15 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
韩国商务邀请函
2014/01/14 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
课程设计的心得体会
2014/09/03 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
植物园观后感
2015/06/11 职场文书
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript