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)