好久沒寫了,今天來說說python讀取excel的常見方法。首先需要用到xlrd模組,pip install xlrd 安裝模組。
首先開啟excel檔案:
xl = xlrd.open_workbook(r'd:\file\data.xlsx') 傳檔案路徑
通過索引獲取要操作的工作表
table = xl.sheets()[0]
有些人不知道啥是工作表,下圖這個:
獲取第一行的內容,索引從0開始
row = table.row_values(0)
獲取第一列的整列的內容
col = table.col_values(0)
獲取第一列,njjcri第0~4行(不含第4行)
print(table.col_values(0,0,4))
獲取單元格值,第幾行第幾個,索引從0開始
data = table.cell(2,0).value
pycharm讀取資料後發現整數變成了小數
如圖,手機號變小數:
解決辦法:在整數內容前加上乙個英文的引號即可
讀取excel內容方法截圖:
# todo 對excel的操作
import xlrd
# todo 開啟excle
xl = xlrd.open_workbook(r'd:\file\data.xlsx')
#print(xl.renjjcriad())
# todo 通過索引獲取工作表
table = xl.sheets()[0]
priwww.cppcns.comnt(table)
# 獲取一共多少行
rows = table.nrows
print(rows)
# todo 獲取第一行的內容,索引從0開始
row = table.row_values(0)
print(row)
# todo 獲取第一列的整列的內容
col = table.col_values(0)
print(col)
# todo 獲取單元格值,第幾行第幾個,索引從0開始
data = table.cell(3,0).value
print(data)
寫入資料到excel的操作:
'''寫入excel檔案'''
injjcrimport xlsxwriter
# todo 建立excel檔案
xl = xlsxwriter.workbook(r'd:\testfile\test.xlsx')
# todo 新增sheet
sheet = xl.add_worksheet('sheet1')
# todo 往單元格cell新增資料,索引寫入
sheet.write_string(0,0,'username')
# todo 位置寫入
sheet.write_string('b1','password')
# todo 設定單元格寬度大小
sheet.set_column('a:b',30)
# todo 關閉檔案
xl.close()
方法截圖:
封裝讀取excel的方法:
import xlrd
def config_data():
# 公共引數
xl = xlrd.open_workbook(r'd:\testfile\config.xlsx')
table = xl.sheets()[0]
# todo 獲取單元行的內容,索引取值
row = table.row_values(0)
return row
測試是否可用:
程式設計客棧
'''測試data裡面的配置資料是否可用'''
from app_automation.data import config_data
row = config_data()
print(row[0])
本文標題: python如何讀取和寫入excel裡面的資料
本文位址:
如何用python讀取和寫入TIFF檔案2
之前用以上方法生成的影象貌似cmv會出現pixel value exceeds destination range.的錯誤。原因是cmv只能讀取1024 1024或2048 2048的影象。關於生成tiff的方法,貌似用pure python module更好一點,即 from libtiff im...
Python如何寫入和讀取csv檔案
import csv 開啟要寫入的csv檔案,如果該路徑下沒有此檔案,會自動新建乙個test.csv檔案 f open mnt sdb test.csv w csv writer csv.writer f 寫入列名 csv writer.writerow name label 寫入資料 如果是寫入多...
python 檔案讀取和寫入
def upload file request try if request.method post data request.files data assert data,引數必傳 data num random.randint 0,100 file name os.path.join setti...