日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 读plt文件_用python读Excel文件

發布時間:2023/12/15 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 读plt文件_用python读Excel文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在IC設計、驗證、后端中經常會用Excel來做配置文件、寄存器表、定義后端SDC參數等,不管Excel好不好用,但學習成本低啊。

Excel文件的結構

Excel文件主要由工作簿(book)、工作表(sheet)、單元格(cell)組成。一個Excel文件就是一個工作簿。一個工作簿可以有N個工作表。每個工作表由N行xM列個單元格組成,行通常用阿拉伯數字編號,列用英文字母編號。

Excel文件還包括其它輔助信息,如格式、合并、宏、VBA等。

用xlrd讀Excel的基本操作

xlrd是讀Excel應用最廣泛的第三方庫之一,安裝方法:

pip3 install xlrd

以下圖的Excel文件為例,介紹讀取的方法:

Step 1

讀Excel文件的第一步是打開工作簿:

import xlrd

book = xlrd.open_workbook('test.xls')

Step 2

第二步是打開工作表,'Sheet1'。

sheets = book.sheet_name()
# ['Sheet1', 'Sheet2']
sheets_num = len(book.sheet_name())
# 2sheet0 = book.sheet_by_index(0)
#
sheet0 = book.sheet_by_name('Sheet1')
#

Step 3

從單元格里讀數據。先來看看一共有多少行、多少列。

max_rows = sheet0.nrows # 5
max_cols = sheet0.ncols # 5

打印出所有單元格的數據:

for row in range(max_rows):
for col in range(max_cols):
print('\t', end='')
print(sheet0.cell(row, col).value, end=' ')
print('')
# 11.0 12.0 13.0 14.0 15.0
# 21.0 23.0 24.0 25.0
# 33.0 34.0
# 41.0 42.0 43.0
# 51.0 52.0 54.0 55.0

讀取內容與預期一致。

注意:

  • 索引從0開始

  • 合并單元格,只能從左上角的單元格里讀出,其余單元格讀出的是空字符''

  • 空單元格(沒值的),讀取的也是空字符串''

  • 我們可以進一步通過判斷單元格值的類型來確認:

    for row in range(max_rows):
    for col in range(max_cols):
    print('\t', end='')
    print(sheet0.cell(row, col).ctype, end=' ')
    print('')
    # 2 2 2 2 2
    # 2 0 2 2 2
    # 0 0 2 2 0
    # 2 2 2 0 0
    # 2 2 0 2 2

    ctype的值與含義:

    • 0 - 空

    • 1 - 字符串

    • 2 - 數字

    • 3 - 日期

    • 4 - 布爾型

    可以看出,單元格數據的類型確實與打印的數值一致。

    但有一個問題,無法區分是空值和合并單元格。

    讀取合并單元格

    在實際項目中,有時候我們希望能夠

  • 判斷是否是合并單元格,

  • 跳過合并單元格(得到合并單元格的邊界)。

  • 其實,在xlrd的sheet里,已經讀取了合并單元格的信息。只需要在open_workbook()時打開選項:

    book = xlrd.open_workbook('test.xls', formatting_info=True)
    sheet0 = book.sheet_by_index(0)
    merged_cells = sheet0.merged_cells
    print(merged_cells)
    # [(1, 3, 0, 2), (2, 4, 3, 5)]

    返回了兩個元組,就是兩個合并單元格。含義:(start_row, end_row, start_col, end_col)

    注意:與python語法一致,不包括end行或列。

    那么我們可以寫兩個函數來把這個列表封裝一下:

    def isMergedCell(row, col):
    for r in merged_cells:
    if row >= r[0] and row < r[1] and col >= r[2] and col < r[3]:
    return True
    return False

    print(isMergedCell(1, 0)) # True
    print(isMergedCell(2, 1)) # True
    print(isMergedCell(4, 2)) # False

    def getMargin(row, col):
    if(isMergedCell(row, col)):
    for r in merged_cells:
    if row >= r[0] and row < r[1] and col >= r[2] and col < r[3]:
    return (r[1]-1, r[3]-1)
    else:
    return (row, col)

    print(getMargin(1, 0)) #(2, 1)
    print(getMargin(2 ,3)) #(3, 4)

    是不是很方便?通過這段代碼,我們知道cell(4,2)只是空值,不是合并單元格。也輕松獲取了合并單元格的邊界。

    總結

    在理解了Excel的存儲結構后,xlrd的使用就顯得非常方便。另外,xlrd不僅可以讀取xls,也可以讀取xlsx(就是說xlrd可以兼容新老版本的Excel)。

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的python 读plt文件_用python读Excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。