美文网首页
python3操作excel文件和.docx文件

python3操作excel文件和.docx文件

作者: test小星星 | 来源:发表于2018-09-06 11:41 被阅读17次

    读取excel文件

    pip install xlrd # 安装xlrd模块
    
    import xlrd  # 导入xlrd模块
    
    # 打开excel文件
    
    data = xlrd.open_workbook('文件路径及文件名')
    
    # 获取读入的文件的
    
    sheet = data.sheet_by_index(0)  # 索引的方式,从0开始
    
    # 获取行数
    
    nrows = sheet.nrows
    
    # 获取列数
    
    ncols = sheet.ncols
    
    # 获取整行的值
    
    sheet.row_values(0) # 第一行的值
    
    # 获取整列的值
    
    sheet.col_values(0) # 第一列的值
    
    # 获取某个单元格的值
    
    data = sheet.cell(x, y).value
    

    对已有的excel更新(修改)

    import xlrd
    from xlutils.copy import copy  # 导入xlutils.copy
    
    # 打开文件
    file = xlrd.open_workbook('文件路径', formatting_info=True)  # formatting_info=True保留文档单元格的格式,(默认False)
    # 拷贝一份新的文件
    new_file = copy(xls_fils)  
    # 此对象拥有write方法
    sheet = new_file.get_sheet(0)
    # 要修改的单元格
    sheet.write(4, 7, data)
    # 修改后的保存路径
    new_file.save(save_path)
    

    formatting_info还没有对新版本的xlsx的格式完成兼容,所以在读取xlsx格式的Excel时,传入formatting_info会直接抛出异常:"formatting_info=True not yet implemented"
    解决办法:修改为xlsx为xls。

    更改文件格式

    # xls更改为xlsx
    import win32com.client
    path = r'E:\修改文件\test.xls'
    excel = win32com.client.gencache.EnsureDispatch('Excel.Application')  # 要看MIME手册
    # 打开被修改的文件
    wb = excel.Workbooks.Open(path)
    # 修改文件(51是xlsx格式)然后保存。  56是xls
    wb.SaveAs(path + 'x', FileFormat=51)
    wb.Close()
    excel.Application.Quit()
    

    获取某个目录的所有文件

    import os    
    
    for root, dirs, filesin os.walk(file_dir):
    
            print(root)    # 当前目录路径
    
            print(dirs)    # 当前路径下所有子目录
    
            print(files)    # 当前路径下所有非目录子文件
    

    读取.doxc文件

    # 安装doxc库
    
    pip install docx
    
    # 导入docx库
    
    import docx
    
    # 打开文件
    
    data = docx.Document('文件路径及文件名') 
    
    # 读文件
    
    for file in data.paragraphs:
        print(file.text)    # 逐行读取
    

    读取.docx文件中的表格数据

    # 获取文件中的表格集 
    
    tables = data.tables   
    
     # 获取文件中的第一个表格
    
    table = tables[0]   
    
    for i in range(1,len(table.rows)):    #从表格第二行开始循环读取表格数据
            result = table.cell(i,0).text + " " +  table.cell(i,1).text    # 读取第二行开始的第一个单元格和第二个单元格
            print(result)
    

    将doc转为docx

    from win32com import client as wc
    word = wc.Dispatch("Word.Application")
    doc = word.Documents.Open('.doc文件路径及文件名')
    doc.SaveAs('转换成docx文件后保存的路径', 12) # 12为docx
    doc.Close()
    word.Quit()
    

    CSV文件操作

    import csv
    import codecs
    from itertools import islice
    
    # 读取本地 CSV 文件
    data = csv.reader(codecs.open('user_info.csv', 'r', 'utf_8_sig'))
    
    # 用户存放用户数据
    users = []
    
    # 循环输出每一行信息
    for line in islice(data, 1, None):
        users.append(line)
    

    islice用于切片操作

    islice(iterable, [start,] stop [, step]) # --> islice object
    islice(f,0,10) # 取文件的前10行
    islice(f,100,300) #生成 文件 100 到  300 行的生成器,不包含第300行
    islice(f,500) #生成500行以内的生成器
    islice(f,500,None) #生成500行以后的生成器
    for line in islice(f,0,10):
        print line
    

    相关文章

      网友评论

          本文标题:python3操作excel文件和.docx文件

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