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的视图中使用form对象的方法
Jul 18 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
Python实现12306火车票抢票系统
Jul 04 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
tensorflow多维张量计算实例
Feb 11 Python
python实现在线翻译功能
Mar 03 Python
Python如何发送与接收大型数组
Aug 07 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 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 autoload机制的详解
2013/06/09 PHP
php检测url是否存在的方法
2015/04/14 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
javascript基础知识
2016/06/07 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
js实现简单的秒表
2020/01/16 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
scrapy爬虫实例分享
2017/12/28 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
成人教育自我鉴定
2013/11/01 职场文书
素质拓展感言
2014/01/29 职场文书
写求职信有什么意义
2014/02/17 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
用Python实现Newton插值法
2021/04/17 Python
mysql 索引合并的使用
2021/08/30 MySQL
Python闭包的定义和使用方法
2022/04/11 Python