写点东西:《python读取excel文件》

“复利”是世界上第八大奇迹。凡事能摸透它的人就能赚,而琢磨不透的人就会亏。
                                 ——爱因斯坦

“每天都要阅读500页。知识就是这样积累起来的,就像利息一样,越滚越多。”
                              ——股神巴菲特

 引用两位名人的名言作为开篇,从今天起坚持定期总结、记录下自己的所见所学,也分享给需要的人。


话不多说,代码如下 ↓

#--excelUtil.py 通过openpyxl库操作读取excel
import openpyxl

class excel():
    def __init__(self,file):
        self.file = file
        self.wb = openpyxl.load_workbook(self.file)
        sheets = self.wb.sheetnames
        self.sheet = sheets[0]
        self.ws = self.wb[self.sheet]
        
    #获取表格的总行数和总列数
    def getRowsClosNum(self):
        rows = self.ws.max_row
        columns = self.ws.max_column
        return rows,columns
    
    #获取某个单元格的值
    def getCellValue(self,row,column):       
        cellvalue = self.ws.cell(row=row,column=column).value
        return cellvalue
    
    #获取某列的所有值(列序号从1开始)
    def getColValues(self,column):
        columndata = getColValuesAfterRow(self,column,1)
        return columndata

    #获取某列指定行以后的所有值(列序号从1开始)
    def getColValuesAfterRow(self,column,startrow):
        rows = self.ws.max_row
        columndata=[]
        for i in range(startrow,rows+1):
            cellvalue = self.ws.cell(row=i,column=column).value
            columndata.append(cellvalue)
        return columndata
    
    #获取某行所有值
    def getRowValues(self,row):
        columns = self.ws.max_column
        rowdata=[]
        for i in range(1,columns+1):
            cellvalue = self.ws.cell(row=row,column=i).value
            rowdata.append(cellvalue)
        return rowdata
    
    #设置某个单元格的值
    def setCellValue(self,row,colunm,cellvalue):
        try:
            self.ws.cell(row=row,column=colunm).value=cellvalue
            self.wb.save(self.file)
        except:
            self.ws.cell(row=row,column=colunm).value="test"
            self.wb.save(self.file)
#使用方式
if __name__ == "__main__":
    exc = excel('xxx.xlsx')
    #获取行数和列数
    rowLen,colLen = exc.getRowsClosNum()
    #遍历所有行
    for i in range(1,rowLen):
        #获取行中所有单元格集合
        rowObj = exc.getRowValues(i)
        #获取第8列
        cell8 = rowObj[8]
        #获取第8列
        cell11 = rowObj[11]
        #以追加方式写入文件(‘a+’:追加方式)
        with open('test.txt', 'a+') as f:
                print(qdbz)
                f.write(cell8)
                f.write(cell11)

※注意

  1. openpyxl库 仅支持打开xlsx格式excel,xls的请另存为xlsx后读取。
  2. 如果使用with open('test.txt', 'a+') as f:写入文件,不能使用from openpyxl import *方式引用,否则方法冲突。

                                                                                                                                                                     时间有限,下期再见! 

 

 

你可能感兴趣的:(python,开发,写点东西,写点东西,python,excel,openpyxl)