美文网首页
Python读写Excel

Python读写Excel

作者: 波洛的汽车电子世界 | 来源:发表于2018-09-18 22:29 被阅读0次

    任务:读取excel 表格的某些行列,用python做随机抽取,再将结果写入另一个excel表格里面。

    使用的库:OpenPyXL

    1. 先导入所需的库。
    from openpyxl import load_workbook
    from openpyxl import Workbook
    import random
    
    1. 读取输入表格。
    wb_in = load_workbook(filename='path1/wb1.xlsx', read_only=True)
    

    得到的wb_in就是一个workbook对象。

    接下来通过表格的名字即可读入所有的表格。

    例如,第一个表格的名字是"sheet1", ws_sheet1就是第一个表格。

    wsheet_in = wb_in['sheet1']
    

    如果不知道表格的名字,则可以用[get_sheet_names] 得到名字。

    for name in wb_in.get_sheet_names():
        wsheet_in = wb_in[name]
    

    这样就得到了wb_in这个工作簿的所有表格。

    得到了表格,接着就可以按单元格来处理了。
    如果要获得某个单元格,可用wsheet_in['A2'],如果要得到某个单元格的值,用wsheet_in['A4'].value

    但是excel中,按单元格处理的效率太低,最常用的还是按行列处理数据。
    如果要得到行,用wsheet_in.rows,这是生成器类型,不能使用索引,转换成list之后再使用索引。
    例如,可以得到前两行:x,y = list(wsheet.rows)[:2]

    可以遍历每一行:

    for row in wsheet_in.rows:
        print(row)
    

    可以用len(list(wsheet.columns))来判断写入的时候应该从哪一行开始写,防止覆盖。
    同样的,得到一列,用wsheet_in.columns
    得到一个区域,用切片,cells = wsheet['A1':'D10']

    1. 随机选取的结果,写入已有工作簿的新表格中。
      如果已有工作簿,需要建立新的表格。那么先新建一个workbook对象,再在这里新建sheet。
    wb_out = load_workbook('path2/wb2.xlsx') #导入已有的工作簿
    ws2 = wb_out.create_sheet('ads') #在已有的表格后面建立名为'ads'的表格
    ws2 = wb_out.create_sheet('sa',0)  #在第一个位置建立名为'sa'的表格
    #它与下面的两句效果相同
    ws3 = wb_out.create_sheet(0) #在第一位新建表格
    ws3.title = "sa" #将名字设为'sa'
    #在ws2中A1单元格中写入'This is so cool'
    ws2['A1'] = 'This is so cool'
    #保存
    wb_out.save("path2/wb2.xlsx")
    

    如果已有工作簿和表格,需要接着已有的表格继续写。

    1. 在新的工作簿中新建一个表格。
    out1 = Workbook()  #新建一个workbook
    ws4 = out1.create_sheet(0) 
    ws4.title = "university"
    ws4['A1'] = 'asd'
    out1.save("path2/test.xlsx") #保存为test.xlsx
    
    

    相关文章

      网友评论

          本文标题:Python读写Excel

          本文链接:https://www.haomeiwen.com/subject/algmnftx.html