首页 > 编程语言 >python 读取excel

python 读取excel

时间:2022-09-27 18:47:58浏览次数:44  
标签:ColLength 读取 python excel StartRowCol FileName StartCol import

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import  warnings
warnings.filterwarnings('ignore')
import openpyxl
from openpyxl.cell import MergedCell
import os
import  re

def read_excel(FileName,SheetName,ColLength=None,StartRowCol=(2,1)):
    try:
        #读excel
        if not os.path.exists(FileName):
            print("[%s] 文件不存在"%(FileName))
            return []
        wb= openpyxl.load_workbook(filename =FileName, data_only = True)
        ws =wb[SheetName]
        RowId = StartRowCol[0]
        StartCol = StartRowCol[1]
        ColLength = ColLength if ColLength else ws.max_column
        ColLength = StartCol-1 + ColLength
        #MaxRow = int(RowEnd) if RowEnd and int(RowEnd)<ws.max_row else ws.max_row
        MaxRow = ws.max_row
        ExcelData =[]
        while MaxRow >= RowId:
            ColId=StartCol
            RowData =[]
            while ColId<=ColLength:
                cell = ws.cell(row=RowId,column=ColId)
                if isinstance(cell,MergedCell):#判断该单元格是否合并单元格
                    for merged_range in ws.merged_cell_ranges:  # 循环查找该单元格所属的合并区域
                        if cell.coordinate in merged_range:
                            # 获取合并区域左上角的单元格作为该单元格的值返回
                            cell = ws.cell(row=merged_range.min_row, column=merged_range.min_col)
                            break
                value =str(cell.value) if str(cell.value)!='None'  else ''
                RowData.append(value)
                ColId+=1

            if len(set(RowData))<2 and RowData[0] == '':
                pass
            else:
                ExcelData.append(RowData)
            RowId+=1
        wb.close()
        print('读取 [%s]文件 [%s]表数据完成...'%(FileName,SheetName))
        return ExcelData
    except Exception as e:
        print(e)
        return []
if __name__ == '__main__':
    read_excel("test.xlsx",'Sheet1',ColLength=None,StartRowCol=(2,1))

  

标签:ColLength,读取,python,excel,StartRowCol,FileName,StartCol,import
From: https://www.cnblogs.com/boye169/p/16735544.html

相关文章

  • 11 | python脚本更改linux系统下的文件权限
    在文件上传至linux系统的过程中遇到了执行文件不可执行的问题。于是自己写了一个python脚本和文件夹放到一起,上传后运行即可!frompathlibimport*#目录文件名......
  • uniapp如何分包 & 分包配置后无法读取static文件夹
    1.为什么会使用uniapp分包?   最近因为使用uniapp做小程序,所以后面在程序发布预览时,经常出现:微信小程序Error系统错误,sourcesize2126KBexceedmaxlimit2MB等问题......
  • Python学习:绑定方法与非绑定方法
    一、绑定方法与非绑定方法类中定义的函数分为两大类:绑定方法和非绑定方法其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。在类中正常定义的函数默认是绑定......
  • python接口测试1-简单的接口测试
    使用requests包配置请求的url、headers、如果是post,put方法,还需要有请求的body注意空值,在python中应写为None  ......
  • python下使用pip freeze >requirements.txt命令迁移模块
    当我们开发项目的时候,会用virtualenv创建很多python独立环境,这时候就会出现在不同环境下安装相同的模块的时候,为了避免我们通过联网下载所需模块,不如我们直接从之前pytho......
  • python入门第五课--
    今日内容概要作业讲解垃圾回收机制流程控制理论(重要)流程控制之分支结构(重要)流程控制之循环结构(重要)今日内容详细作业讲解1.获取用户输入并打印成下列......
  • 使用hutool工具进行导入导出excel表格2
    username password nickname email张三 23 88.32 TRUE李四 33 59.50 FALSE自定义内容 第五行第二列 名字 张三 密码 23 昵称 88.32 电子邮件 true 效果......
  • 1:python3环境搭建和PyCharm配置
    python官网----https://www.python.org/1.查看历史版本2。下载指定的历史版本.   3.安装python  4.安装到指定目录(先创建一个python3的目录)  5修改......
  • Hiwin直线电机C#MPI控制程序<通讯设置、回原点设置、点动模式、点对点运动、依托Timer
    一、通讯设定与连接√说明与总结:布尔量Connect为驱动器连接与否的标识符,启动时默认为false,即未连接状态; /*-----------------------------------------------*/......
  • c#读取配置
    方法一:通过注入IConfiguration服务接口来读取appsetting.json如下:{"Logging":{"LogLevel":{"Default":"Information","Microsoft":"Warnin......