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

歡迎訪問 生活随笔!

生活随笔

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

python

Python笔记一之excel的读取

發布時間:2023/12/29 python 31 coder
生活随笔 收集整理的這篇文章主要介紹了 Python笔记一之excel的读取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文首發于公眾號:Hunter后端

原文鏈接:Python筆記一之excel的讀取

這里我常用的 python 對于 excel 的讀取庫有兩個,一個是 xlsxwriter 用于操作 excel 的寫入,一個是 xlrd 用于 excel 文件的讀取。

使用的庫的版本如下:

  • xlsx==1.2.6
  • xlrd==1.1.0

xlsxwriter 寫入 excel

新建一個 excel

import xlsxwriter

path = "/Users/hunter/xxx.xlsx"

wb = xlsxwriter.Workbook(path)

添加一個 sheet:

# 定義 sheet 的名稱
sheet_name = "sheet_name"  

# 添加一個 sheet 頁
sheet_1 = wb.add_worksheet(sheet_name)

sheet 表格數據的寫入
sheet 的表格數據有幾種方式,一種是通過 x, y 這種坐標軸定位的方式,從左上角開始,左上角也就是 'A1' 的位子為 (0, 0)。

比如我們想要在左上角寫入數據:

sheet1.write(0, 0, "A1數據")

如果我們想要在第二行,第三列寫入數據:

sheet1.write(1, 2, "C2數據")

另一種是通過 excel 的單元格名稱來定位寫入,比如 'A1','D4'這種:

sheet1.write("A1", "A1數據")
sheet1.write("F2", "F2數據")

批量寫入
除了單個單元格的數據寫入,我們還可以通過某個起始單元格來批量寫入。

批量寫入可以從橫向寫入,也可以從縱向寫入。

比如如果想要從 C2 單元格開始,橫向寫入 python,java,JS 三條數據,可以如下操作:

sheet1.write_row("C2", ["python", "java", "JS"])

也可以通過 i, j 的定位方式來操作,比如從 "C3" 開始往后寫入:

sheet1.write_row(2, 2, ["python", "java", "JS"])

上面的 write_row() 方法是橫向寫入,從起始位置橫向開始寫,如果是縱向,那就使用 write_column()

保存
然后將這個 excel 保存:

wb.close()

xlrd 讀取 excel

注意: 安裝 xlrd 的時候不要安裝默認的版本,當前默認的最新版本不能解析 xlsx 文件,我這里選擇的是 xlrd==1.0.0

使用 xlrd 從 excel 中讀取數據的操作方式如下:

獲取 excel

import xlrd

path = "/Users/hunter/xxx.xlsx"
workbook = xlrd.open_workbook(path)

獲取 sheet

獲取 sheet 對象列表:

sheet_list = workbook.sheets()

獲取所有的 sheet 的名稱列表:

sheet_name_list = workbook.sheet_names()

根據索引獲取單個 sheet:

i = 0
sheet = workbook.sheet_by_index(i)

獲取單元格數據
如果直接獲取單元格數據,可以通過坐標軸的 x, y 的方式來定位獲取,其中左上角是 (0, 0)。

比如我們想獲取 (0, 0) 位子的數據,也就是 'A1' 的單元格,我們可以:

cell = sheet.cell(0, 0)

獲取到的是這個單元格對象,如果想要獲取其中的值,需要對 cell 對象再取值:

print(cell.value)

也可以直接使用取值的方法:

print(sheet.cell_value(0, 0))

獲取行列數據

上面是通過單元格單個獲取數據,我們可以單獨獲取行和列的數據,比如獲取第二行的單元格:

row_2 = sheet.row(1)

上面獲取到的數據是一個對象列表,每個元素都是一個個的單元格 cell,也就是我們上面通過 cell() 函數獲取到的對象。

如果是想直接取值,則可以:

row_value_2 = sheet.row_values(1)

返回的是一個列表,元素是該行單元的 value 值

查看該行長度:

row_value_2_len = sheet.row_len(1)

獲取 sheet 的總行數:

nrows = sheet.nrows

根據列獲取數據將函數的 row 換成 col 即可,比如獲取第二列的數據:

col_value_2 = sheet.col_values(1)

如果想獲取更多相關文章,可掃碼關注閱讀:

總結

以上是生活随笔為你收集整理的Python笔记一之excel的读取的全部內容,希望文章能夠幫你解決所遇到的問題。

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