Pythonでのxlrdモジュールの学習

1. xlrdモジュールは、主にExcelフォームの読み取りに使用され、xlsxおよびxlsをサポートします。xlwtは、主にExcelの書き込みおよびライブラリの読み取りに使用されます。

2.一般的に使用されるセルのデータ型

0、空(空); 1、文字列(テキスト)、2、数値、3、日付、4、ブール値、5、エラー、6、空白(空白のフォーム)    

使用する

1.インポートモジュール

XLRDをインポート

次に、Excelファイルを開いてデータを読み取ります(ファイルが最初に作成されます)

 

data = xlrd.open_workbook( 'study.xls')#ファイル名とパス、パスまたはファイル名に中国語が含まれている場合は、前にrを追加してネイティブ文字を示します(例: 'rLearn.xls')。

 

3、xlrdモジュール操作

1.基本機能

1.1。ブックを開いてBookオブジェクトを取得する
  • xlrd.open_workbook(filename [、logfile、file_contents、...]):Excelファイルを開く
    filename:操作するファイルの名前(ファイルパスとファイル名を含む)。

ファイル名が存在しない場合、エラーFileNotFoundErrorが報告され、
ファイル名が存在する場合、戻り値はxlrd.book.Bookオブジェクトです。

1.2。Bookオブジェクトのすべてのシート名を取得する
  • BookObject.sheet_names():すべてのシートの名前を取得し、リストに表示します
1.3。BookオブジェクトのすべてのSheetオブジェクトを取得する
  • BookObject.sheets():すべてのシートオブジェクトを取得し、リストとして表示します

  • BookObject.sheet_by_index(sheetx):目的のシートオブジェクト
    sheetxをシートインデックスを介してインデックス値として取得します。インデックスは0から始まります
    。sheetxがインデックス範囲を超えると、エラーIndexErrorが報告されます
    。sheetxがインデックス範囲内にある場合、戻り値はxlrd.sheetです。 .Sheetオブジェクト

  • BookObject.sheet_by_name(sheet_name):目的のシートオブジェクトをシート名で取得します
    。sheet_nameはシート名です
    。sheet_nameが存在しない場合、エラーxlrd.biffh.XLRDErrorが報告されます
    。sheet_nameが存在する場合、戻り値はxlrd.sheet.Sheetです。

1.4。Bookオブジェクトのシートがインポートされているかどうかを確認する
  • BookObject.sheet_loaded(sheet_name_or_index):シートがシート名またはインデックスで正常にインポートされたかどうかを判断します。
    戻り値はboolです。戻り値がTrueの場合はインポートされたことを意味し、Falseの場合はインポートされていません。
1.5。Sheetオブジェクトの行を操作する
  • SheetObject.nrows:シートの有効な行の数を取得します

  • SheetObject.row_values(rowx [、start_colx = 0、end_colx = None]):シートのrowx + 1行のstart_colx列からend_colx列までのデータを取得します。戻り値はリストです。
    rowxがインデックスの範囲にある場合、データをリストの形式で返します
    。rowxがインデックスの範囲にない場合、エラーIndexErrorが報告されます。

  • SheetObject.row(rowx):シート内のrowx + 1行の単位を取得します。戻り値はリストです。
    リスト内の各値内容は次のとおりです:ユニットタイプ:ユニットデータ

  • SheetObject.row_slice(rowx [、start_colx = 0、end_colx = None]):スライスモードのstart_colx列からend_colx列までのシートのrowx + 1行の単位を取得します。戻り値はリストです。リスト
    の各値内容は次のとおりです:unitタイプ:単位データ

  • SheetObject.row_types(rowx [、start_colx = 0、end_colx = None]):シートのrowx + 1行のセルタイプを、start_colx列からend_colx列まで取得します。戻り値はarray.arrayタイプです。
    ユニットタイプctype:空は0、文字列は1、数値は2、日付は3、ブール値は4、エラーは5(左はタイプ、右はタイプの対応する値)。

  • SheetObject.row_len(rowx):シートのrowx + 1行の長さを取得します

rowx:行インデックス、行数は0から始まります(0は最初の行を意味します)、必須パラメーター;
start_colx:開始列は、start_colxの値を含むstart_colx列から値を取得することを意味します;
end_colx:終了列はend_colx値を除くEnd_colx列の終了値。

start_colxのデフォルトは0、end_colxのデフォルトはNoneです。関連するデータの行全体を取得することを意味します。

  • SheetObject.get_rows():シートのすべての行のジェネレータを取得します
1.6。Sheetオブジェクトの列操作
  • SheetObject.ncols:シート内の有効な列の数を取得します

  • SheetObject.col_values(self、colx [、start_rowx = 0、end_rowx = None]):start_rowx行からシートのcolx + 1列のend_rowx行までのデータを取得します。戻り値はリストです。

  • SheetObject.col_slice(colx [、start_rowx = 0、end_rowx = None]):スライスモードでシートのcolx + 1列のstart_rowx行からend_rowx行までのデータを取得します。戻り値はリストです。
    リストの各値の内容は次のとおりです。ユニットタイプ:ユニットデータ

  • SheetObject.col_types(colx [、start_rowx = 0、end_rowx = None]):start_rowx行からend_rowx行までのシートのcolx + 1列のセルタイプを取得します。戻り値はリストです。

1.7。Sheetオブジェクトのセルで操作を実行する
  • ShellObeject.cell(rowx、colx):シートオブジェクトのrowx + 1行とcolx + 1列のセルオブジェクトを取得します。戻り値の型は 'xlrd.sheet.Cell'で、戻り値の形式は「セルタイプ:セル」です。値 "。

  • ShellObject.cell_value(rowx、colx):シートオブジェクトのrowx + 1行とcolx + 1列のセルデータを取得し、戻り値は現在の値のタイプ(float、int、stringなど)です。

  • ShellObject.cell_type(rowx、colx):シートオブジェクトのrowx + 1行とcolx + 1列のセルデータタイプ値を取得します。
    セルタイプctype:空は0、文字列は1、数値は2、日付は3です。ブール値は4、エラーは5です。

具体操作:
import xlrd 
'' 'Open exce table' ''
wook_book = xlrd.open_workbook( 'study.xls')
print(wook_book)#jResult:<xlrd.book.Book object at 0x000001DC91214B50>


'' '1、すべてのシート名を取得'' '
sheet_names = wook_book.sheet_names()
print(sheet_names)#Result:List [' people '、' animal '、' car ']



' '' 2、Get all or a特定のシートオブジェクト '' '
' '' Getすべてのシートオブジェクトの ''
sheet_object = wook_book.sheets()
print(sheet_object)#RESULTS [<xlrd.sheet.Sheet object at
#0x0000026F491C21C0>、
#<xlrd.sheet.Sheet object at 0x0000026F491C22E0>、
#<xlrd.sheet 。0x0000026F491C22B0>にあるシートオブジェクト#]
最初のシートオブジェクトをインデックスで
取得sheet1_object = wook_book.sheet_by_index(0)
print(sheet1_object)#

最初のシートオブジェクトを名前で
取得sheet2_object = wook_book.sheet_by_name( 'people')
print(sheet2_object)



'' '3.シートがインポートされているかどうかを確認する' '' #sheet1
がindexによって
sheet1_is_loadにインポートされているかどうかを確認する= wook_book.sheet_loaded(sheet_name_or_index = 0)
print(sheet1_is_load)#Result:True


sheet1 がシート名でインポートされているかどうかを確認しますsheet1_name_is_load = wook_book.sheet_loaded(sheet_name_or_index = 'people')
print(sheet1_name_is_load)#結果はTrueまたはFalse




'' '4.有効な行の数、n1からn2までの行のデータ、行の単位とタイプ、行の長さなど、シートオブジェクトに対して操作を実行します。'' ' #sheet1
nrowsの有効な行数を
取得:行数nrows = sheet1_object.nrows
print(nrows)#シート1

の3行目のデータを
取得all_row_values = sheet1_object.row_values(rowx = 2)
print(all_row_values)#get
some行の最初の数列から最初の数行の値
row_values = sheet1_object.row_values(rowx = 2、start_colx = 1、end_colx = 3)
print(row_values)#シート1

の3行目のユニットオブジェクトを
取得します。これはユニットオブジェクトrow_object = sheet1_object.row(rowx = 2)
print(row_object)#シート1
の行3のユニットを
取得row_slice = sheet1_object.row_slice(rowx = 2)
print(row_slice)#sheet1

の行3の
ユニットタイプを取得row_type = sheet1_object.row_types (rowx = 2)
print(row_type)#sheet1

の3番目の行の長さを取得します
row_len = sheet1_object.row_len(rowx = 2)
print(row_len)#sheet1

のすべての行のジェネレーターを
取得しますrow_generator = sheet1_object.get_rows()
print(row_generator)




'' '5.シートオブジェクトの列で操作を実行する' '' #sheet1 
の有効な列ncolsの数を
取得:列の数ncols = sheet1_object.ncols
print(ncols)
#シート1の列1のデータを取得する
col_values = sheet1_object.col_values(colx = 1)
print(col_values)
col_value1 = sheet1_object.col_values(1,1,3)
print(col_value1)#sheet1
の2番目の列のセルを
取得しますcol_silce = sheet1_object.col_slice(colx = 1)
print(col_silce )#sheet1
の2番目の列のセルタイプを
取得するcol_types = sheet1_object.col_types(colx = 1)
print(col_types)
'' '5.シートオブジェクトのセルに対して操作を実行します' '' 
シート1の行+ 1行およびcolx + 1列のセルオブジェクトを
取得cell_info = sheet1_object.cell(rowx = 1、colx = 2)
print( cell_info)
print(type(cell_info))#<class 'xlrd.sheet.Cell'>#シート

1の行+ 1行と列colx + 1のセル値を
取得cell_value = sheet1_object.cell_value(rowx = 1、colx = 2)
print(cell_value)

#行+ 1行と列colx + 1のセルタイプ値をシートシートに
取得cell_type = sheet1_object.cell_type(rowx = 1、colx = 2)
print(cell_type)
 

 

 

おすすめ

転載: www.cnblogs.com/aichixigua12/p/12672755.html