Python は Excel ドキュメントを読み書きします
I.はじめに
Excelライブラリの読み書きにはPythonを使うととても便利なので、xlwtとxlrdの2つのライブラリをインストールすると楽しく遊べるようになります。次に使い方を見てみましょう
次に、必要なライブラリ
- xlwt ライブラリ、Excel ドキュメントの作成
- xlrd ライブラリ、Excel ドキュメントの読み取り
3. オブジェクトの種類
- ワークブックの種類: ワークブックは Excel ドキュメント全体に対応するワークブックであり、説明する必要はありません。
- ワークシートの種類: ワークシートはワークシートです。次の図に示すように、Excel ドキュメントには複数のワークシートを含めることができます。ワークシート オブジェクトは、以下のテーブルの 1 つを表します。
4 番目に、xlwt ライブラリを使用して Excel ドキュメントを作成します。
オブジェクトの種類を理解した上で、九九九九を Excel 文書に書き込んでみましょう
インポートライブラリ
- インポートxlwt
例を書く
次に、関数を完了するメソッドを記述します。コメントはすべてコード内にあります。
def writeExample(savePath):
#创建工作簿
workbook = xlwt.Workbook(encoding="utf-8");
#创建工作表
worksheet = workbook.add_sheet("九九乘法表")
#写入
for i in range(0, 9):
for j in range(0, i+1):
str = ("%d * %d = %d"%(i+1,j+1,(i+1)*(j+1)))
#实际写入语句
worksheet.write(i,j,str)
#保存
workbook.save(savePath)
効果
5、xlrd ライブラリを使用して Excel ドキュメントを読み取る
インポートライブラリ
xlrdをインポートする
例を読む
def readExample(excelPath):
#获得book对象
workbook = xlrd.open_workbook(excelPath)
#获得sheet对象的3种写法
worksheet = workbook.sheets()[0] #通过sheet()方法,并结合下标来获取
# worksheet = workbook.sheet_by_index(0) #直接通过下标来获取
# worksheet = workbook.sheet_by_name("your excel name") #通过名字来获取
#因为xlrd库里的api没提示,这里手动指定类型,这样写起来就有提示了
assert isinstance(worksheet,xlrd.sheet.Sheet)
#自己写时若不知道类型,可以解开下面的打印,然后复制一下
#print(type(worksheet))
#打印行数和列数
print("行数",worksheet.nrows)
print("列数",worksheet.ncols)
#获取第i,j个格子的值的3种写法
print(worksheet.cell(0,0).value)
print(worksheet.cell_value(0,0))
print(worksheet.row(0)[0].value)
#遍历
for i in range(worksheet.nrows):
for j in range(worksheet.ncols):
print(worksheet.cell_value(i,j))
効果
6、完全なコード
import xlwt
excelPath = "./九九乘法表.xls"
def writeExample(savePath):
#创建工作簿
workbook = xlwt.Workbook(encoding="utf-8");
#创建工作表
worksheet = workbook.add_sheet("九九乘法表")
#写入
for i in range(0, 9):
for j in range(0, i+1):
str = ("%d * %d = %d"%(i+1,j+1,(i+1)*(j+1)))
#实际写入语句
worksheet.write(i,j,str)
#保存
workbook.save(savePath)
writeExample(excelPath)
import xlrd
def readExample(excelPath):
#获得book对象
workbook = xlrd.open_workbook(excelPath)
#获得sheet对象的3种写法
worksheet = workbook.sheets()[0] #通过sheet()方法,并结合下标来获取
# worksheet = workbook.sheet_by_index(0) #直接通过下标来获取
# worksheet = workbook.sheet_by_name("your excel name") #通过名字来获取
#因为xlrd库里的api没提示,这里手动指定类型,这样就有提示了
assert isinstance(worksheet,xlrd.sheet.Sheet)
#自己写时若不知道类型,可以解开下面的打印,然后复制一下
#print(type(worksheet))
#打印行数和列数
print("行数",worksheet.nrows)
print("列数",worksheet.ncols)
#获取第i,j个格子的值的3种写法
print("获取第(0,0)个格子的值的3种写法")
print(worksheet.cell(0,0).value)
print(worksheet.cell_value(0,0))
print(worksheet.row(0)[0].value)
print()
#遍历
for i in range(worksheet.nrows):
for j in range(worksheet.ncols):
print(worksheet.cell_value(i,j),end="\t")
print()
readExample(excelPath)