最近公司有个新的需求:上传一个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. 英国继银行被窃之后 信贷公司Wonga数十万客户数据被泄
  2. ThinkPHP U方法
  3. 关于ueditor多图上传加水印
  4. 【剑指offer】_04 重建二叉树
  5. 适用于ps的Raw格式图像插件:AdobeCamera Raw13 Mac中文版
  6. oracle 视图及函数授权,Oracle常见1000问之内部函数及管理视图
  7. Python中的枚举(enumerate)
  8. 初学Python之利用map编写姓名格式化输出函数
  9. Flutter 基础系列篇
  10. BP神经网络需要训练的参数,BP神经网络图像识别
  11. 华为云服务器测试并用docker快速搭建2048网站
  12. IDEA translation翻译插件报错-》更新TKK失败请检查网络
  13. 2018蓝桥杯校选复现3
  14. 笔记:《深入浅出统计学》第十六章-附录:分布剖析、样本方差与协方差、决定系数、非线性关系、连续随机变量的期望与方差
  15. Unity il2cpp new 内存分配过程
  16. 【分布式事务】内容较多CAP/BASE/2PC/3PC/TCC/Sega等等等等~,一次性捋清楚
  17. 搭建网校系统,既能解决疫情下教育培训难题,也解决了企业办公问题
  18. V4L2视频采集与H264编码2—v4l2采集YUV数据
  19. 介绍芯片时为什么都要介绍制程?制程到底是什么?14nm、10nm?
  20. 流年做戏,我不会再爱你

热门文章

  1. windows服务器上无法运行bat文件,Windows 2008任务计划执行bat脚本失败返回0x1的解决方法...
  2. linux防火墙清空所有规则,删除规则与清空所有规则《 iptables 防火墙 》
  3. memcntl 函数 linux,Solaris中的酷命令
  4. 以太坊:导入预售钱包,更新、备份、恢复账号
  5. logit回归模型_详解 Logit/Probit 模型中的 completely determined 问题
  6. windows下安装wafw00f
  7. PAT乙级(简单模拟)1001、1011、1016、1026、1046、1012、1018
  8. python通达信股票分价表数据_通达信分价量表主图指标公式
  9. linux系统初级培训材料,Linux操作系统初级培训(5)
  10. 润滑剂粘度调节剂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告