用Python写excel和ppt文件

#xlsx和 xls

#一:openpyxl 只能读取xlsx 推荐使用的二种方法

#因为excle文件中可以有多个编排 故可以返回字典

#该方法只适应于xlsx文件,不能处理xls文件

'''

from openpyxl.reader.excel import load_workbook

def readXlsxFile(path):

    dic={}

    #打开文件

    file=load_workbook(filename=path)

    #所有表格的名称,返回的是一个列表

    #print(file.get_sheet_names())

    sheets=file.get_sheet_names()

    #拿出一个表格

    for sheetName in sheets:

        sheet=file.get_sheet_by_name(sheetName)

        #一张表所有数据

        sheetInfo=[]

        #读取数据

        for lineNum in range(1,sheet.max_row+1):#行数从1开始

            linelist=[]

            for columnNum in range(1,sheet.max_column+1):

            #拿数据

            value=sheet.cell(row=lineNum,column=columnNum).value

            #if 根据实际情况

            if value!=None:

                linelist.append(value)

        sheetInfo.append(linelist)

    #将一张表的数据存到字典

    dic[sheetName]=sheetInfo

    sheet=file.get_sheet_by_name(sheets[0])

    #最大行数

    #print(sheet.max_row)

    #最大列数

    #print(sheet.max_column)

    #表名

    #print(sheet.title)

path=r'I:\1.xlsx'

readXlsxFile(path)

'''

#二:读取Xlsx和xls的内容 ,但只能写xls#需要安装,xlrd,future,xlwt-future,pyexcel-io,ordereddict,pyexcel,pyexcel-xls

'''

from collections import OrderedDict #有序字典

from pyexcel_xls import get_data#读取数据

def readXlsAndXlsxFile(path):

    dic=OrderedDict()

    #抓取数据

    xdata=get_data(path) #返回全部表格数据

    for sheet in xdata: #xdata的内容可以以sheet表的形式拿出

        dic[sheet]=xdata[sheet]

    return dic

path=r'I:\1.xlsx'

print(readXlsAndXlsxFile(path))

'''

#三:写入xls文件,只能写如xls,data格式固定

from collections import OrderedDict #有序字典

from pyexcel_xls import save_data#读取数据

def makeExcelFile(path,data):

    dic=OrderedDict()

    for sheetName,sheetValue in data.items():

        d={}

        d[sheetName]=sheetValue

        dic.update(d)

    save_data(path,dic)

path=r'I:\1.xls'

data={'表一':[[1,2,3],[4,5,6],[7,8,9]],'表二':[[11,12,13],[14,15,16],[17,18,19]]}

makeExcelFile(path,data)


import win32com

import win32com.client

def makePPT(path):

    ppt=win32com.client.Dispatch('PowerPoint.Application')

    ppt.Visible=True

    #增加一个文件

    pptFile=ppt.Presentations.Add()

    #创建一页 Add(参数一,参数二) 参数一为页数(从一开始),参数二为类型(为新建的类型格式)

    page1=pptFile.Slides.Add(1,1)

    t1=page1.Shapes[0].TextFrame.TextRange #page1.Shapes 获取到ppt的框,Range获得到这个输入的位置

    t1.Text='Sunck'

    t2=page1.Shapes[1].TextFrame.TextRange #page1.Shapes 获取到ppt的框,Range获得到这个输入的位置

    t2.Text='Sunck is good man'

    #创建第二页

    page2=pptFile.Slides.Add(2,1)

    t3=page1.Shapes[0].TextFrame.TextRange #page1.Shapes 获取到ppt的框,Range获得到这个输入的位置

    t3.Text='Sunck'

    t4=page1.Shapes[1].TextFrame.TextRange #page1.Shapes 获取到ppt的框,Range获得到这个输入的位置

    t4.Text='Sunck is good man'


    #保存

    pptFile.SaveAs(path)

    #关闭ppt文件

    pptFile.Close()

    #关闭ppt的初始化

    ppt.Quit()

path=r'I:\1.pptx'

makePPT(path)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容