.net 将html写成的table 转换成excel_Python读取二进制,HTML,XML格式存储Excel
生活随笔
收集整理的這篇文章主要介紹了
.net 将html写成的table 转换成excel_Python读取二进制,HTML,XML格式存储Excel
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
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 dfPython讀取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 dfPython讀取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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股权除息日分红什么时候会到账
- 下一篇: 抛硬币正反面的概率 抛硬币正反面落地的概