Python模塊學習之xlrd、xlutils、openpyxl 讀寫/追加Excel文件


Python操作Excel的四個工具包

  • xlrd: 對Excel進行相關操作,注意只能操作 .xls
  • xlwt: 對Excel進行相關操作,注意只能操作 .xls,且只能創建一個全新的Excel然后進行寫入和保存。
  • xlutils:對Excel進行讀、寫相關操作,注意只能操作 .xls
  • openpyxl: 對Excel進行讀、寫相關操作,可操作 2010版的 .xlsx / .xlsm

工具包Python官網相關介紹文檔

xlrd 簡單使用

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import xlrd
import os

def read_excel(line_num, table_name='Sheet1', excel_name='/FAQ.xls', excel_path='../../resource/):
    '''
    @param line_num: 行/列索引
    @param table_name: 表名
    @param excel_name: Excel文件名
    @param excel_path: Excel文件路徑
    @return : data 讀取到的數據
    '''
    file_path = os.path.normpath(os.path.join(os.path.dirname(__file__), excel_path + excel_name ))
    with xlrd.open_workbook(file_path) as f:
        table = f.sheet_by_name(table_name)
        #nrows = table.nrows   #遍歷所有行
        data = table.row_values(line_num)  #讀取行數據
        #nrows = table.ncols   #遍歷所有列
        #data = table.col_values(line_num)  #讀取列數據

        return data

xlutils 簡單使用

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import xlrd
import os
from xlutils import copy

def write_excel(row, col, data, sheet_index=0, excel_name='/FAQ.xls', excel_path='../../resource/):
    '''
    @param row: 行索引
    @param col: 列索引
    @param data: 需寫入的數據
    @param sheet_index: 表索引
    @param excel_name: Excel文件名
    @param excel_path: Excel文件路徑
    @return : 
    '''
    file_path = os.path.normpath(os.path.join(os.path.dirname(__file__), excel_path + excel_name ))
    with xlrd.open_workbook(file_path, formatting_info=True) as wb:
        new_wb = copy(wb)
        new_sheet = new_wb.get_sheet(sheet_index)

        #設置單元格背景顏色0-Black,1=White,2=Red,3=Green,4=Blue,5=Yellow,6=Magenta
        style = 'pattern: pattern solid_pattern, pattern_fore_colour 3;' #設置單元格背景顏色
        style += 'font: name arial;"  #字體
        style += 'alignment: horz CENTER, vert CENTER; ' #居中
        style += ' borders: left DASHED, right DASHED, top DASHED, bottom DASHED' #邊框
        
        new_sheet.write(row, col, data, style )
        #new_wb.save(file_path)    #原Excel上修改和保存
        new_wb.save(os.path.splitext(file_path)[0] + '.out' + os.path.splitext(file_path)[-1])  #保存新的Excel,輸出為 FAQ.out.xls


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM