最近公司有个新的需求:上传一个excel文件,需要对文件进行检测,把错误的记录标红并且记录错误原因!

1.首先上传文件此时没有对文件内容进行检查。
2.保存,此时对文件内容进行检查,用pandas库读取excel文件,进行遍历把有问题的字段记录到数据库中。
3.下载excel,下载的文件中需要标红字段有问题的记录并且记录错误原因!(需要使用到xlrd、xlwt、xlutils库)
3.1:首先我们拿到上传的excel的二进制数据,然后使用xlrd库对二进制数据进行读取,(因为涉及到excel内容的修改所以需要用到xlwt和xlutils库,因为xlrd只能读取excel不能进行修改),然后使用xlutils对xlrd读取的数据进行copy,后面再就对copy之后的对象进行标红操作即可!
3.2:对excel错误记录字体标红需要用到xlwt库,(xlwt.Font()方法生成一个font对象,然后对font对象进行操作)。
3.3:一切操作完成后需要把修改后数据输出成二进制数据,使用到io.BytesIO()方法。

修改excel标红错误记录伪代码如下:

         err_rows = access.get_upload(None, uploadid, channel).sErrorDataf = BytesIO()  # create a file-like objectf1 = BytesIO()  # 接受更改格式后的数据流book = xlrd.open_workbook(file_contents=data)err_dic = {}err_rows = eval(err_rows) if err_rows else []# styleBlueBkg = xlwt.easyxf('pattern: pattern solid, fore_colour red;')  # 红色ro = book.sheets()[0]  # 读取表单0wb = copy(book)  # 利用xlutils.copy下的copy函数复制ws = wb.get_sheet(0)  # 获取表单0for i in range(ro.nrows):if i == 0 or i == 1:continueif ro.cell(i, 1).value and ro.cell(i,1).ctype == 3:value = xlrd.xldate.xldate_as_datetime(ro.cell(i, 1).value, 0).__format__("%Y-%m-%d")ws.write(i, 1, value)wb.save(f)ff = f.getvalue()for err_row in err_rows:err_dic.update(err_row)if len(err_dic) == 0:return ffbook = xlrd.open_workbook(file_contents=ff)  # 读取修改格式后的数据ro = book.sheets()[0]  # 读取表单0wb = copy(book)  # 利用xlutils.copy下的copy函数复制ws = wb.get_sheet(0)  # 获取表单0font = xlwt.Font()font.colour_index = 10  # 指定红色字体style = xlwt.XFStyle()style.font = fontfor key, value in err_dic.items():for i in range(4):values = ro.cell(key + 1, i).valuews.write(key+1, i, values, style)ws.write(key+1, 4, value, style)wb.save(f1)return f1.getvalue()

参考链接:读取excel单元格中返回内容的类型
在excel中输出多种颜色字体

如有不对的地方希望大家多多指教!

python读取excel文件,把指定行表红相关推荐

  1. 用python处理excel的基本语法_《使用python3读取处理excel表的数据内容如何对内容求平均值》 用python读取excel文件...

    使用python3读取处理excel表的数据内容如何对内容求平均值 先说下概述: 平就合平均数的值. (a1 a2 --an)/na1,a2,--,an的平均值. 简单算均数.么一组数字10.20.3 ...

  2. python pandas库读取excel/csv中指定行或列数据详解

    通过阅读表格,可以发现Pandas中提供了非常丰富的数据读写方法,下面这篇文章主要给大家介绍了关于python利用pandas库读取excel/csv中指定行或列数据的相关资料,需要的朋友可以参考下 ...

  3. python读取文件_一日一技:使用Python读取Excel文件

    安装xlrd模块: pip install xlrd 使用xlrd模块,可以从电子表格中检索信息. 例如,可以在Python中完成读取,写入或修改数据的操作. 另外,用户可能必须浏览各种工作表并根据某 ...

  4. python读取excel文件

    python读取excel文件 1.pandas 读excel练习 2.测试程序: 3.实际使用 1.pandas 读excel练习 因为要真理一些excel中的工作内容,所以想用python脚本完成 ...

  5. 如何用python读取表格_如何使用Python读取excel文件?(代码示例)

    使用xlrd模块,可以从电子表格中检索信息.例如,可以用Python来读取.写入或修改数据.此外,用户可能必须遍历各种表,并根据一些标准检索数据,或者修改一些行和列,并执行大量工作. xlrd模块用于 ...

  6. python打开excel的函数-Python读取excel文件中带公式的值的实现

    在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值 但是用之前的读取方法进行读取的时候,返回值为空 import os import xlrd from xlutils.copy ...

  7. python读取Excel工作簿、工作表

    python读取Excel工作簿.工作表 最近需要用python操作Excel表格,因此大概学习了一下如何操作,表较简单但是很实用,这里记录一些简单的操作. import xlrd # 读取工作簿 w ...

  8. python可以读取excel文档吗_python打开excel文件【python读取excel文件如何进行】

    Python语言打开Excel文件? 一.安装xlrd模 到python官网下http://pypi.python.org/pypi/xlrd模块安装,前已经安装python 环境. 二.使用介 1. ...

  9. python 读取Excel文件(包括后缀为.xls与.xlsx)

    1.python 读取Excel文件(.xls文件) 导入的为xlrd 读取该sheet表中的值 import xlrd# 读取表格 def read_excel(book_data,sheet_da ...

  10. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

最新文章

  1. jdeveloper_在JDeveloper 12.1.3中为WebSocket使用Java API
  2. [学习笔记]信号与系统
  3. CSP认证201503-1 图像旋转[C++题解]:模拟
  4. Akamai “三驾马车”,如何应对疫情后新场景形态下的新考验?
  5. 二进制编译安装mysql_二进制编译安装mysql
  6. dijkstra算法_最短路径问题——迪杰斯特拉算法(Dijkstra)
  7. Java本地文件操作
  8. ssas表格模型 权限控制_Analysis Services(SSAS)表格模型中的时间智能
  9. caffe运行问题(持续更新),sublime设置
  10. sftp非交互式每日定时拉取增量数据文件至本地合并至存量
  11. 什么是前台?什么是中台?什么是后台?
  12. 关于Kali使用aireplay-ng时出现设备繁忙的解决(转自 zpblog.cn)
  13. 数据库驱动和数据库连接(MySQL)
  14. Spark jars依赖问题
  15. accesskey属性:激活元素快捷键(Alt+)
  16. 仿京东PC网页商品详情的放大镜效果(原理+代码)
  17. Python表白:你值你值得拥有,找不到对象你来找我,这也太秀了叭
  18. 01.软件测试基础知识整合
  19. 小板匹配 从上层到下层
  20. Windows远程桌面连接报错【用户账户限制会阻止你登录】

热门文章

  1. centos上安装和卸载mysql
  2. 石油、化工 工程上都在用的地下管线探测仪---TFN A1200
  3. Golang分布式应用之etcd
  4. 华师大数据科学考研_华东师范大学数据科学与工程学院硕士研究生录取名单公示...
  5. 【AI视野·今日CV 计算机视觉论文速览 第166期】Mon, 28 Oct 2019
  6. SAP 各大常用模块汇总介绍(四)
  7. 云服务器可以用来干什么?了解了这4点你就知道了
  8. 最新地铁路线图云开发小程序源码+实测可用
  9. Camera Boke背景虚化谷歌官方解释
  10. springmvc关于404的异常处理