Python 对Excel表格相关处理(读取,创建,追加)

python对excel表格处理需要导入相关的库:

(1)、操作xls格式的表格文件:

读取:xlrd

写入:xlwt

修改(追加写入):xlutils

(2)、操作xlsx格式的表格文件:

读取/写入:openpyxl

 

*如果用操作xls的方法去写入xlsx文件,会导致文件损坏无法打开;反之一样。

(一)、操作xls格式表格

1、读取excel表格数据

import xlrd   #从excle里读数据
import xlwt   #创建新的表格写入数据
import xlutils  #往已有表格中追加数据

class IOExcel(object):
    def __init__(self,file):
        self.file = file

    def get_sheet(self,sheetname):
        excelfile=xlrd.open_workbook(self.file)
        self.sheet = excelfile.sheet_by_name(sheetname)
        return self.sheet
    #获取第*行的数据
    def get_rowData(self,row):
        cols = self.sheet.ncols   #获取sheet页有多少列
        Cells = []
        for i in range(0,cols):
            Cells.append(self.sheet.cell(row,i).value)
        return Cells

2、创建表格写入数据

def write_excel(self,sheet_name, value):
    index = len(value)  # 获取需要写入数据的行数
    workbook = xlwt.Workbook()  # 新建一个工作簿
    sheet = workbook.add_sheet(sheet_name)  # 在工作簿中新建一个表格
    for i in range(0, index):
        for j in range(0, len(value[i])):
            sheet.write(i, j, value[i][j])     #向表格中写入数据(对应的行和列)
    workbook.save(self.file)     # 保存工作簿

3、向已存在表格中追加数据

def write_excel_xls_append(self,value):
    index = len(value)  # 获取需要写入数据的行数
    workbook = xlrd.open_workbook(self.file)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    rows_old = worksheet.nrows  # 获取表格中已存在的数据的行数
    new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
    new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
    for i in range(0, index):
        for j in range(0, len(value[i])):
            new_worksheet.write(i+rows_old, j, value[i][j])  # 追加写入数据,注意是从i+rows_old行开始写入
    new_workbook.save(self.file)  # 保存工作簿

(二)、操作xlsx格式表格

wb = openpyxl.Workbook()   #创建一个新的excel
we = wb.create_sheet('第二页',0)  #修改sheet页的名字;设置插入sheet页的位置,默认在上一页后面( 初始创建的excel是只有一个默认sheet页的,所以设置位置的值大于1效果都一样,都是在默认sheet页的后面接着)
# we.title = '你好'  # 修改sheet页的名字
#操作单元格
we['A1']=123124
we['B2']='你好'
print(we.cell(1,2,'123123').value)   #设置cell的行号和列号和值,返回cell的值
wb.save('C:\\Users\\t_ful\\PycharmProjects\\test\\element\\t.xlsx')   #保存表格

你可能感兴趣的:(PYTHON)