美文网首页HCLAB
python excel同时操作表格读写针对xls&xs

python excel同时操作表格读写针对xls&xs

作者: 肉团先生 | 来源:发表于2019-05-17 11:01 被阅读1次

    由于xlsxxls使用的类库操作不一样,导致方法也是不一样的。

    针对xls如何同时操作同一表格读写

    用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件

    幸好xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能,在xlrd.Book和xlwt.Workbook之间建立了一个管道,完美解决这个问题。

    代码案例:

    # 得当对应读的工作表,写的工作表,还有路径
    def OpenXlxs():
        readOpenXlsx = xlrd.open_workbook(xlsxName)
    
        readXlsxSheet = readOpenXlsx.sheet_by_name('userInfo')
        
        # copy管道作用
        writeOpenXlsx = copy(readOpenXlsx)
    
        return readXlsxSheet,writeOpenXlsx,xlsxName
    # 进行读操作
    def readXlsx(readXlsxSheet, writeOpenXlsx, xlsxName):
        #获取行数
        ......
    ### 进行写操作    
    def writeXlsx(writeOpenXlsx,row,xlsxName):
        # 前面已经通过 copy 方法获取了writeOpenXlsx
        # 通过get_sheet()获取的sheet有write()方法
        writeXlsxSheet = writeOpenXlsx.get_sheet(0)
        
        ....
        writeXlsxSheet.write(row,7,'Pass')
        writeOpenXlsx.save(xlsxName)
    

    其实使用copy把同一个表格复制加载到内存上,然后针对修改添加的写入,然后把copy到的原表一并带上。

    针对xlsx读取日期为数字,如何进行转化

    使用openpyxl进行读写,就相当简单了,直接赋值即可。

    示例代码:

    from openpyxl import load_workbook
    excel=load_workbook('E:/test.xlsx')
    #获取sheet:
    table = excel.get_sheet_by_name('Sheet1')   #通过表名获取  
    
    
    #获取单元格值:
    Data=table.cell(row=row,column=col).value  #获取表格内容,是从第一行第一列是从1开始的,注意不要丢掉 .value
    
    # 对单元格进行写操作
    table.cell(row=row,column=col).value='11' # 注意有可能需要进行格式转化一下即可
    # 最后save,进行保存一下
    excel.save('E:/test.xlsx')
    
    

    引用参考

    相关文章

      网友评论

        本文标题:python excel同时操作表格读写针对xls&xs

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