天天看點

python中workbook_Python中幾種存取xls/xlsx檔案的方法總結

這篇文章主要介紹了關于Python學習_幾種存取xls/xlsx檔案的方法總結,有着一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

想在深度學習程式運作時動态存下來一些參數。

存成Excel檔案檢視友善,就查了幾種方法,做個測試。因為我平常也不怎麼用 Excel,簡單的存取資料就夠了。

xlwt/xlrd庫 存Excel檔案:(如果存儲資料中有字元,那麼寫法還有點小小的變化)

import xlwt

workbook = xlwt.Workbook(encoding='utf-8')

booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)

#存第一行cell(1,1)和cell(1,2)

booksheet.write(0,0,34)

booksheet.write(0,1,38)

#存第二行cell(2,1)和cell(2,2)

booksheet.write(1,0,36)

booksheet.write(1,1,39)

#存一行資料

rowdata = [43,56]

for i in range(len(rowdata)):

booksheet.write(2,i,rowdata[i])

workbook.save('test_xlwt.xls')

python中workbook_Python中幾種存取xls/xlsx檔案的方法總結

讀Excel檔案:(同樣是對于數值類型資料)

import xlrd

workbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls')

print(workbook.sheet_names()) #檢視所有sheet

booksheet = workbook.sheet_by_index(0) #用索引取第一個sheet

booksheet = workbook.sheet_by_name('Sheet 1') #或用名稱取sheet

#讀單元格資料

cell_11 = booksheet.cell_value(0,0)

cell_21 = booksheet.cell_value(1,0)

#讀一行資料

row_3 = booksheet.row_values(2)

print(cell_11, cell_21, row_3)

>>>34.0 36.0 [43.0, 56.0]

openpyxl 庫 存Excel檔案:

from openpyxl import Workbook

workbook = Workbook()

booksheet = workbook.active #擷取目前活躍的sheet,預設是第一個sheet

#存第一行單元格cell(1,1)

booksheet.cell(1,1).value = 6 #這個方法索引從1開始

booksheet.cell("B1").value = 7

#存一行資料

booksheet.append([11,87])

workbook.save("test_openpyxl.xlsx")

python中workbook_Python中幾種存取xls/xlsx檔案的方法總結

讀Excel檔案:

from openpyxl import load_workbook

workbook = load_workbook('D:\\Py_exercise\\test_openpyxl.xlsx')

#booksheet = workbook.active #擷取目前活躍的sheet,預設是第一個sheet

sheets = workbook.get_sheet_names() #從名稱擷取sheet

booksheet = workbook.get_sheet_by_name(sheets[0])

rows = booksheet.rows

columns = booksheet.columns

#疊代所有的行

for row in rows:

line = [col.value for col in row]

#通過坐标讀取值

cell_11 = booksheet.cell('A1').value

cell_11 = booksheet.cell(row=1, column=1).value

原理上其實都一樣,就寫法上有些差别。

其實如果對存儲格式沒有要求的話,我覺得存成 csv檔案 也挺好的:

import pandas as pd

csv_mat = np.empty((0,2),float)

csv_mat = np.append(csv_mat, [[43,55]], axis=0)

csv_mat = np.append(csv_mat, [[65,67]], axis=0)

csv_pd = pd.DataFrame(csv_mat)

csv_pd.to_csv("test_pd.csv", sep=',', header=False, index=False)

因為它讀起來非常簡單:

import pandas as pd

filename = "D:\\Py_exercise\\test_pd.csv"

csv_data = pd.read_csv(filename, header=None)

csv_data = np.array(csv_data, dtype=float)

相關推薦:

Python中XlsxWriter子產品簡介與用法分析