「已注销」 2021-11-29 11:15 采纳率: 20%
浏览 15

爬取excel表格数据主函数不接受任何参数

最后有错误,翻译说MxlsxWB()不接收任何参数
import os
import numpy as np
from openpyxl import load_workbook
class MxlsxWB:
def init(self,workpath=os.getcwd(),filename=None):
self.workpath = workpath
self.filename = filename
def set_path(self,workpath):
self.workpath = workpath
os.chdir(self.workpath)
def set_filename(self,filename=None):
self.filename = filename
def get_fileinfo(self):
print(self.filename)
print("="* 30,"文件信息","=" * 30)
self.wb = load_workbook(filename=self.filename)
self.sheetnames = self.wb.sheetnames
print("表名为:",end=" ")
for name in self.sheetnames:
print(name,end=" ")
print("\n")
print("="*30,"文件信息结束","="*30)
def choose_sheet(self,sheetname=None):
if sheetname == None:
self.sheetname = self.sheetnames[0]
else:
self.sheetname = sheetname
self.worksheet = self.wb[self.sheetname]
def get_sheetinfo(self):
print("="*30,self.sheetname,"=" *30)
self.num_of_rows = len(list(self.worksheet.rows))
self.num_of_cols = len(list(self.worksheet.columns))

    print("行数:", self.num_of_rows)
    print("列数:", self.num_of_cols)
    print("列名:",MxlsxWB.get_rowdata(self,rownum=1))
    print("="*30,self.sheetname,"="*30)
def get_rows_of_sheet(self):
    return len(list(self.worksheet.rows))
def get_cols_of_sheet(self):
    return len(list(self.worksheet.columns))
def get_row_number_of_sheet(self,rownum,col_name):
    for row in self.worksheet.iter_rows(min_row=1,max_row=rownum,
                                       max_col=self.num_of_cols):
        for cell in row:
            if cell.value == col_name:
                return cell.row
def get_col_number_of_sheet(self,rownum,col_name):
    for row in self.worksheet.iter_rows(min_row=1,max_row=rownum,
                                        max_col=self.num_of_cols):
        for cell in row:
            if cell.value == col_name:
                return cell.col_idx
def get_rowdata(self,rownum):
    rowdata = []
    for row in self.worksheet.iter_rows(min_row=rownum,max_row=rownum,
                                        max_col=self.num_of_cols):
        for cell in row:
            rowdata.append(cell.value)
    print (rowdata)
    return rowdata
def get_coldata(self,colnum):
    coldata = []
    for col in self.worksheet.iter_cols(min_col=colnum,max_col=colnum,
                                        max_row=self.num_of_cols):
        for cell in col:
            coldata.append(cell.value)
        return coldata
def get_coldata(self,colnum,minrow,maxrow):
    coldata = []
    for col in self.worksheet.iter_cols(min_col=colnum,max_col=colnum,
                                        min_row=minrow,max_row=maxrow):
        for cell in col:
            coldata.append(cell.value)
        print(coldata)
        return coldata
def get_areadata(self,min_row,max_row,min_col,max_col):
    print("="*30,"区域数据","="*30)
    areadata=np.matrix(np.zeros((max_row-min_row+1,max_col-min_col+1)),dtype=str)
    for col in self.worksheet.iter_cols(min_row=min_row,max_row=max_row,
                                        min_col=min_col,max_col=max_col):
        for cell in col:
            col_index=cell.col_idx
            row_index=cell.row
            areadata[row_index-min_row,col_index-min_col]=cell.value
    print(areadata)
    print("="*30,"区域数据","="*30)
    return areadata

Demo = MxlsxWB()
Demo.set_filename('scores/13.xlsx')
Demo = MxlsxWB(filename='scores/13.xlsx')
Demo.get_fileinfo()
Demo.choose_sheet('Sheet1')
Demo.get_sheetinfo()
Demo.get_areadata(5,7,1,9)

img

  • 写回答

1条回答 默认 最新

  • 普通网友 2021-11-29 11:18
    关注

    这个图片,看不出来情况,建议可以按贴代码的方式,把代码放出来看看会更合适

    评论

报告相同问题?

问题事件

  • 修改了问题 11月29日
  • 修改了问题 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 ue2.6.12版本用的若以,安装gojs,引入import * as go from 'gojs';报错
  • ¥15 服务器上的网站安装php5.6版本
  • ¥15 ModuleNotFoundError: No module named 'torch.utils._import_utils' 是缺少什么
  • ¥15 请大咖一起探索iptv 直播源的hls通过反向代理解密
  • ¥100 寻找技术员 云闪付tn转h5输入卡号付款的链接 重酬!
  • ¥100 科大讯飞语音唤醒词,unbuntu环境,报错
  • ¥50 python写segy数据时出错2
  • ¥20 关于R studio 做精确稳定检验的问题!(语言-r语言)
  • ¥50 用贝叶斯决策方法,设计CAD程序
  • ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)