前言

RPA设计器版本:2020.2

Python读取三种不同存储格式Excel文件

Excel文件的存储格式有多种,有我们平常公认的二进制格式,也有HTML格式,还有XML格式的等。

目前,小编接触到RPA项目的Excel文件格式主要是上述说的三种格式(二进制,HTML,XML)

这里需要注意的是:RPA设计器2020.2只支持二进制格式的Excel文件读取

Python读取二进制类型的Excel文件并返回DataFrame对象

这里我直接将重新读取Excel的操作封装成函数放在一系列函数使用,也可以使用RPA设计器自带的读取Excel组件

def get_data_from_binary_excel(file_path):    """      从 binary 二进制格式的 excel 中获取数据    :param file_path:    :return: DataFrame    """    # 读取Excel 使用 pandas 读取二进制文件 excel    pd_df = pd.read_excel(io=file_path)    # 填充 NaN 将 nan 值用空字符串替换 df = rpa_pandas.fillna(df=pd_df)    df = pd_df.fillna('')    return df

Python读取HTML类型的Excel文件并返回DataFrame对象

这里我直接将重新读取Excel的操作封装成函数放在 一系列函数 中使用

def get_data_from_html_excel(file_path, encoding='utf-8'):    """        从 html 格式的 excel 中获取数据    :param file_path:    :return: DataFrame    """    dfs = pd.read_html(file_path, encoding=encoding)    pd_df = dfs[0]    df = pd_df.fillna('')    return df

Python读取XML类型的Excel文件

思路:利用Python将Excel文件读取到内存中,再利用正则表达式从XML标签中取出Excel表格中的数据

def get_data_from_xml_excel(file_path):    """    解决 pandas.read_excel() 读取 excel 解析错误问题.    读取 excel 文件,将每行数据都放入 list 列表中。    返回值有二个,第一个是 excel 表头的长度,第二个是数据 list 集合    """    try:        with open(file_path, 'rb') as tree:            content = tree.read().decode('utf-8')            # 单位            # 单位            pattern1 = r"""(.+?)"""                        r"""|(.+?)"""            head_iter = re.finditer(pattern1, content)            head_list = []            for tpl in head_iter:                for i in range(len(tpl.groups())):                    ele = tpl.groups()[i]                    if ele is not None:                        head_list.append(ele)                        break            #             pattern2 = r"""([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""            data_iter = re.finditer(pattern2, content)            data_list = []            count = 0            for tpl in data_iter:                groups_len = len(tpl.groups())                # print(groups_len, tpl.groups(), tpl.span())                for i in range(groups_len):                    ele = tpl.groups()[i]                    # 排除不需要的脏数据                    if ele is not None and ele != 'nan' and ele != 'null':                        data_list.append(ele)                        break                    count += 1                # 若为空数据,或者 nan, null ,用空字符串替换                if count == groups_len:                    data_list.append('')                # 每次内循环后都要清零                count = 0            return len(head_list), data_list    except Exception as e:        print('解析 excel 发生异常 {}'.format(e))        return 0, []
def get_data_from_xml_excel(file_path):    """    解决 pandas.read_excel() 读取 excel 解析错误问题.    读取 excel 文件,将每行数据都放入 list 列表中。    返回值有二个,第一个是 excel 表头的长度,第二个是数据 list 集合    """    try:        with open(file_path, 'rb') as tree:            content = tree.read().decode('utf-8')            # 单位            # 单位            pattern1 = r"""(.+?)"""                        r"""|(.+?)"""            head_iter = re.finditer(pattern1, content)            head_list = []            for tpl in head_iter:                for i in range(len(tpl.groups())):                    ele = tpl.groups()[i]                    if ele is not None:                        head_list.append(ele)                        break            #             pattern2 = r"""([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""                        r"""|([sSwW]*?)"""            data_iter = re.finditer(pattern2, content)            data_list = []            count = 0            for tpl in data_iter:                groups_len = len(tpl.groups())                # print(groups_len, tpl.groups(), tpl.span())                for i in range(groups_len):                    ele = tpl.groups()[i]                    # 排除不需要的脏数据                    if ele is not None and ele != 'nan' and ele != 'null':                        data_list.append(ele)                        break                    count += 1                # 若为空数据,或者 nan, null ,用空字符串替换                if count == groups_len:                    data_list.append('')                # 每次内循环后都要清零                count = 0            return len(head_list), data_list    except Exception as e:        print('解析 excel 发生异常 {}'.format(e))        return 0, []

快速了解RPA

RPA RPA技术 RPA软件 RPA培训 RPA应用 RPA机器人

领域 数据统计

.net 将html写成的table 转换成excel_Python读取二进制,HTML,XML格式存储Excel相关推荐

  1. .net 将html写成的table 转换成excel_如何使用Pandas将二维表(DataFrame)反转为一维列表?...

    前言 我正在Python / Pandas中寻找将2维表反转为1维列表的技巧. 我通常利用Excel函数来执行此操作,但是我相信有一种聪明的Python方式可以执行此操作. Excel方式的更多详细信 ...

  2. 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。 程序的输入是一个整数,表示华氏温度。输出对

    #题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度. 程序的输入是一个整数,表示华氏温度.输出对应的摄氏温度, ...

  3. 写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32 其中C表示摄氏温度F表示华氏温度程序的输入是一个整数表示华氏温度。输出对应的摄氏温度也是一个整数(java)

    1温度转换(5分) (此题出自:中国大学MOOC零基础学java,翁恺,第1周编程题) 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表 ...

  4. HTML5+jSignature插件手写签名生成图片并转换成文件流实现功能

    公司需求html5手写签名,并转换成图片上传服务器 项目结构:jquery+springboot项目需要引入js文件:jquery的jquery.min.js .jSignature插件的 jSign ...

  5. 小数转换成二进制c语言,只写出了十进制小数转换成二进制的,求二进制小数转十进制的...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #define NUM 2 #define ZERO 0.000001 int PrnMainMen ...

  6. c语言十进制小数转其他进制,只写出了十进制小数转换成二进制的,求二进制小数转十进制的...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #define NUM 2 #define ZERO 0.000001 int PrnMainMen ...

  7. HTML5+jSignature插件手写签名生成图片并转换成文件流实现服务器上传功能

    简介 项目结构:html+vue+springboot html引入VUE项目vue.min.js.jQuery的jquery-3.4.1.min.js,签名:modernizr.js.jSignat ...

  8. badatatable转成json_C# DataTable 转换成JSON数据 三种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...

  9. ceb怎么转换成word_pdf怎么转换成Word?分享PDF转word3种方法!

    pdf怎么转换成Word?在工作中,我常常需要将写好的一份文件或者合同以PDF格式保存起来,然后发给对方,这样接收方就可以直接打印了.但是如果PDF文档需要修改的话,我们还得将PDF转为Word.今天 ...

最新文章

  1. python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?
  2. python跟java-还在纠结选Python还是Java?看完就有数了
  3. 移动并重命名2000个文件,Python,3秒
  4. python版本及ML库
  5. VDO-SLAM论文阅读
  6. python SMTP attachment
  7. 彩虹云商城 最新彩虹代刷V6.9.0免授权纯净完整版
  8. 【python】matplotlib绘图显示不了中文,且没有SimHei、FangSong等字体
  9. 导入数据库时报错的解决办法汇总
  10. 无法正常启动,错误0xc0150002
  11. 蓝桥杯——等差素数列(c语言)
  12. 漫谈软件架构设计系列(一):可用性设计
  13. python实现syn半扫描_python 实现 syn 扫描
  14. 中国高校计算机大赛英语cccc,通知-CCCC中国高校计算机大赛.PDF
  15. Android 利用摄像头指尖测试心率
  16. Day.js 一个轻量级的 JavaScript 时间日期处理库
  17. 如何实现访问不同网络下的局域网网站
  18. python读文本并写入另一个文本文件中怎么做_使用文本Python将文件中的文本写入另一个文件...
  19. input 表单的type属性
  20. 实现DQN算法玩CartPole

热门文章

  1. 从Notes迁移到Exchange Server 2010 之三
  2. dubbo 实践笔记
  3. 得到Js文件的绝对路径或相对路径的两法
  4. python如何使用字典_python字典怎么使用zip
  5. java calendar字符串显示_java关于字符串和日期的代码展示
  6. Fliptile(状压+思维)
  7. 蓝桥杯之第几个幸运数
  8. java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc
  9. XGBoost对比RandomForest、GBDT、决策树、SVM,XGB+LR精度还能提升
  10. 教职工使用计算机管理制度,【学校管理规章制度】教师笔记本电脑使用与管理制度...