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 相关文章推荐
在Django的session中使用User对象的方法
Jul 23 Python
Python编程中装饰器的使用示例解析
Jun 20 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
python pillow模块使用方法详解
Aug 30 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 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 FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
javascript 写类方式之十
2009/07/05 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
js获取ip和地区
2017/03/10 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python中的面向接口编程示例详解
2021/01/17 Python
蒂娜商店:Tiina the Store
2019/12/07 全球购物
岗位职责的含义
2013/11/17 职场文书
开业典礼主持词
2014/03/21 职场文书
函授生自我鉴定
2014/03/25 职场文书
机动车登记业务委托书
2014/10/08 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
医院员工辞职信范文
2015/05/12 职场文书
保外就医申请书范文
2015/08/06 职场文书
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸