Python3 讀、寫Excel文件


首先,簡單介紹一下EXECL中工作簿和工作表的區別:

工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。

  • 一個工作簿就是一個獨立的文件
  • 一個工作簿里面可以有1個或者多個工作表
  • 工作簿是工作表的集合

1:使用python實現對Excel文件的讀寫,首先需要安裝專用的模塊(可以自己編寫)xlrd,xlwt模塊

2:讀取excel數據(注意事項:sheet編號,行號,列號都是從索引0開始)

 

import xlrd

# 設置路徑
path = 'E:/input.xlsx'
# 打開execl
workbook = xlrd.open_workbook(path)

# 輸出Excel文件中所有sheet的名字
print(workbook.sheet_names())

# 根據sheet索引或者名稱獲取sheet內容
Data_sheet = workbook.sheets()[0]  # 通過索引獲取
# Data_sheet = workbook.sheet_by_index(0)  # 通過索引獲取
# Data_sheet = workbook.sheet_by_name(u'名稱')  # 通過名稱獲取


print(Data_sheet.name)  # 獲取sheet名稱
rowNum = Data_sheet.nrows  # sheet行數
colNum = Data_sheet.ncols  # sheet列數

# 獲取所有單元格的內容
list = []
for i in range(rowNum):
    rowlist = []
    for j in range(colNum):
        rowlist.append(Data_sheet.cell_value(i, j))
    list.append(rowlist)
# 輸出所有單元格的內容
for i in range(rowNum):
    for j in range(colNum):
        print(list[i][j], '\t\t', end="")
    print()

# 獲取整行和整列的值(列表)
rows = Data_sheet.row_values(0)  # 獲取第一行內容
cols = Data_sheet.col_values(1)  # 獲取第二列內容
# print (rows)
# print (cols)

# 獲取單元格內容
cell_A1 = Data_sheet.cell(0, 0).value
cell_B1 = Data_sheet.row(0)[1].value  # 使用行索引
cell_C1 = Data_sheet.cell(0, 2).value
cell_D2 = Data_sheet.col(3)[1].value  # 使用列索引
print(cell_A1, cell_B1, cell_C1, cell_D2)

# 獲取單元格內容的數據類型
# ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print('cell(0,0)數據類型:', Data_sheet.cell(0, 0).ctype)
print('cell(1,0)數據類型:', Data_sheet.cell(1, 0).ctype)
print('cell(1,1)數據類型:', Data_sheet.cell(1, 1).ctype)
print('cell(1,2)數據類型:', Data_sheet.cell(1, 2).ctype)

# 獲取單元格內容為日期的數據
date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)
print(type(date_value), date_value)
print('%d:%d:%d' % (date_value[0:3]))

3:創建excel並寫入數據

import xlwt


def set_style(name, height, bold=False):
    style = xlwt.XFStyle()   # 初始化樣式
    font = xlwt.Font()       # 為樣式創建字體
    font.name = name
    font.bold = bold
    font.color_index = 4
    font.height = height

    style.font = font
    return style


def write_excel(path):
    # 創建工作簿
    workbook = xlwt.Workbook(encoding='utf-8')
    # 創建sheet
    data_sheet = workbook.add_sheet('demo')
    row0 = [u'字段名稱', u'大致時段', 'CRNTI', 'CELL-ID']
    row1 = [u'測試', '15:50:33-15:52:14', 22706, 4190202]
    # 生成第一行和第二行
    for i in range(len(row0)):
        data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))
        data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True))

    # 保存文件
    # workbook.save('demo.xls')
    workbook.save(path)


if __name__ == '__main__':
    # 設置路徑
    path = 'E:/demo.xls'
    write_excel(path)
    print(u'創建demo.xls文件成功')

 


免責聲明!

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



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