python中利用openpyxl、xlsxwriter庫操作Excel


刪除Excel指定行或列

使用openpyxl庫操作Excel,可以刪除指定的列

import openpyxl


def excel_delete(fp):
    wb = openpyxl.load_workbook(fp)  # 讀取Excel文件
    ws = wb.active  # 獲取激活的sheet頁
    ws.delete_cols(idx=4, amount=3)  # 從第4列開始往后刪除三列
    ws.delete_rows(idx=2, amount=2)  # 從第2行開始往下刪除兩行
    wb.save(fp)  # 保存文件

往Excel中追加數據

只往Excel的最后一行追加數據

import openpyxl


def write_append(io, data):
    """
    追加寫入數據
    :param io: Excel文件
    :param data: 數據,list 或 dict類型
    :return:
    """
    wb = openpyxl.load_workbook(io)
    sht = wb.active
    sht.append(data)
    wb.save(io)

往Excel中插入行或列

import openpyxl


def excel_insert(fp):
    '''
    插入的行和列都不是按索引插入的,是實際的行和列
    偏移的行和列都是從頭(A1位置)開始算的
    :param fp: 文件路徑
    '''
    wb = openpyxl.load_workbook(fp)
    ws = wb.active
    ws.insert_cols(2)  # 插入第2列,即B列
    ws.insert_cols(2, 4)  # 向右偏移4列,插入第5列,即E列
    ws.insert_rows(2)  # 插入第2行
    ws.insert_rows(2, 3)  # 向下偏移3行,插入第4行
    wb.save(fp)

往指定單元格中寫入超鏈接

xlsxwriter庫也是非常的強大,使用xlsxwriter庫操作Excel,可以實現datatime,url,boolean等等方法,如下:

安裝庫

pip3 install xlsxwriter

調用庫,操作Excel

import xlsxwriter


# 創建一個新工作簿
workbook = xlsxwriter.Workbook(r"C:\Users\Desktop\test.xlsx")
# 添加一個工作表
worksheet = workbook.add_worksheet('test')

worksheet.set_column('B:B', 40)  # 為B列設置列寬為40
worksheet.set_row(2, 30)  # 為第二行設置行高為30

# 設置樣式
formats = workbook.add_format({
    'font_color': 'yellow',
    'bold': 2,
    'underline': 1,
    'font_size': 12,
    'fg_color': 'red'
})
# 寫入超鏈接
worksheet.write_url('B1', 'https://www.baidu.com/')  # 隱式顯示
worksheet.write_url('B2', 'https://www.baidu.com/', string='百度一下')  # 顯示string
worksheet.write_url('B3', 'https://www.baidu.com/', tip='前往百度')  # 鼠標懸浮提示信息
worksheet.write_url('B4', 'https://www.baidu.com/', cell_format=formats)  # 按格式顯示
worksheet.write_url('B5', 'C:/files/file')
worksheet.write_url(1, 2, 'https://www.baidu.com/', cell_format=formats, string='hello', tip='click')
# 寫入一個非超鏈接的URL
worksheet.write_string('B6', 'http://www.baidu.com/')
workbook.close()

 效果如下:

可以設置的格式大概有下面這么多,基本還是夠用的

self.xf_format_indices = xf_indices
self.dxf_format_indices = dxf_indices
self.xf_index = None
self.dxf_index = None

self.num_format = 'General'
self.num_format_index = 0
self.font_index = 0
self.has_font = 0
self.has_dxf_font = 0

self.bold = 0
self.underline = 0
self.italic = 0
self.font_name = 'Calibri'
self.font_size = 11
self.font_color = 0x0
self.font_strikeout = 0
self.font_outline = 0
self.font_shadow = 0
self.font_script = 0
self.font_family = 2
self.font_charset = 0
self.font_scheme = 'minor'
self.font_condense = 0
self.font_extend = 0
self.theme = 0
self.hyperlink = False
self.xf_id = 0

self.hidden = 0
self.locked = 1

self.text_h_align = 0
self.text_wrap = 0
self.text_v_align = 0
self.text_justlast = 0
self.rotation = 0

self.fg_color = 0
self.bg_color = 0
self.pattern = 0
self.has_fill = 0
self.has_dxf_fill = 0
self.fill_index = 0
self.fill_count = 0

self.border_index = 0
self.has_border = 0
self.has_dxf_border = 0
self.border_count = 0

self.bottom = 0
self.bottom_color = 0
self.diag_border = 0
self.diag_color = 0
self.diag_type = 0
self.left = 0
self.left_color = 0
self.right = 0
self.right_color = 0
self.top = 0
self.top_color = 0

self.indent = 0
self.shrink = 0
self.merge_range = 0
self.reading_order = 0
self.just_distrib = 0
self.color_indexed = 0
self.font_only = 0
格式

 

  

 

后續更新中。。。。


免責聲明!

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



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