网站制作学习网Python→正文:python 读取excel sheet 内容
字体:

python 读取excel sheet 内容

Python 2023/10/19 18:41:43  点击:不统计

http://%77w%77%2E%66%6F%72%61%73%70%2E%63n网站制作学习
 python 写了个代码直接读取excel,可以读取本地文件,可以读取网络excel 。仅支持新版excel 的 xlsx 格式,不支持csv

 或者根据指定sheet名称读取excel ,返回整理好的数组。
所有保存的内容,均为 根据实际 类型。
python 读取excel  原来如下,两列
title-date title-num
2023-07-01 1
2023-07-01 2
2023-07-01 3
读取返回 返回 dict 对象格式
{
  'test':
    [
      ['title-date', 'title-num'],
      ['2023-07-01', 1],
      ['2023-07-01', 2],
      ['2023-07-01', 3]
    ], 
'sheet_names': ['test']  #如果有多个sheet ,则 ['Sheet1', 'Sheet2'], 同理上面也会多对应key 的数据
  }
  
  
python 读取excel 代码如下:

# -*- coding: utf-8 -*-
"""
@ author:
@ info: python 读取excel 并返回所有值
@ date: 2023/10/15 16:05
"""
import io
import os
import pandas as pd
import requests
import traceback


class Main:
def run(self):
# 文件路径可以是远程路径,也可以是本地文件
# path = "http://www.rrdm.com/test.xlsx"
# result = self.get_excel_content(path, 'Sheet1') # 指定那个sheet
path = os.getcwd() + "/test.xls" # 如果是本地路径,给绝对路径,我直接取的本地
result = self.read_content(path) # 所有sheet
print(result)

# url 路径,need_sheet_name 是指定那个 sheet 内部表,如果没有则 返回[]
def read_content(self, url, need_sheet_name=None):
try:
if url.startswith("http"):
response = requests.get(url)
excel_bit_content = io.BytesIO(response.content) # 用于输出内容
else:
with open(url, 'rb') as f:
excel_bit_content = io.BytesIO(f.read())
# 开始输出从我啊u哦
sheet_names = pd.ExcelFile(excel_bit_content).sheet_names
except Exception as e:
print("读取文件失败", traceback.print_exc())
return []
result = {}
result_sheet_name = []
for sheet_name in sheet_names:
if need_sheet_name is not None and str(sheet_name) != str(need_sheet_name):
continue
sheet_result = []
excel_content = pd.read_excel(excel_bit_content, sheet_name=sheet_name)
columns = excel_content.columns
head = []
for column in columns:
head.append(column)
sheet_result.append(head)
for index, row in excel_content.iterrows():
row_content = []
for column in head:
row_content.append(row[column])
sheet_result.append(row_content)
result_sheet_name.append(sheet_name)
result[sheet_name] = sheet_result
result['sheet_names'] = result_sheet_name
return result
pass


if __name__ == "__main__":
obj = Main()
obj.run()

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

·上一篇: python 获取函数请求来源 >>    ·下一篇:python grpc >>
推荐文章
最新文章