Python XlsxWriter - 單元格表示法和範圍



每個工作簿中的工作表都是由大量單元格組成的網格,每個單元格可以儲存一個數據 - 值或公式。網格中的每個單元格都由其行號和列號標識。

在 Excel 的標準單元格定址中,列由字母 A、B、C、…、Z、AA、AB 等標識,行從 1 開始編號。

每個單元格的地址都是字母數字的,其中字母部分對應於列,數字對應於行。例如,地址“C5”指向“C”列和“5”行中的單元格。

Cell Notations1

單元格表示法

標準 Excel 使用列字母和基於 1 的行的字母數字序列。XlsxWriter 支援標準 Excel 表示法(**A1** 表示法)以及**行-列**表示法,該表示法對行和列都使用基於零的索引。

示例

在以下示例中,字串“Hello world”使用 Excel 的標準單元格地址寫入 A1 單元格,而“Welcome to XLSXWriter”使用行-列表示法寫入 C5 單元格。

import xlsxwriter
wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()
ws.write('A1', 'Hello world')           # A1 notation
ws.write(4,2,"Welcome to XLSXWriter")   # Row-column notation
wb.close()

輸出

使用 Excel 軟體開啟**hello.xlsx**檔案。

Cell Notations2

編號的**行-列**表示法在以程式設計方式引用單元格時特別有用。在以下程式碼中,必須將列表列表中的資料寫入工作表中的一系列單元格。這是透過兩個巢狀迴圈實現的,外部迴圈表示行號,內部迴圈表示列號。

data = [
   ['Name', 'Physics', 'Chemistry', 'Maths', 'Total'],
   ['Ravi', 60, 70, 80],
   ['Kiran', 65, 75, 85],
   ['Karishma', 55, 65, 75],
]
for row in range(len(data)):
   for col in range(len(data[row])):
      ws.write(row, col, data[row][col])

可以使用下面程式碼中使用的 worksheet 物件的**write_row()**方法實現相同的結果:

for row in range(len(data)):
   ws.write_row(6+row,0, data[row])

worksheet 物件具有**add_table()**方法,該方法將資料寫入一個範圍並將其轉換為 Excel 範圍,在頂行顯示自動篩選下拉箭頭。

ws.add_table('G6:J9', {'data': data, 'header_row':True})

示例

以上所有三個程式碼的輸出可以透過以下程式碼驗證,並在下圖中顯示:

import xlsxwriter

wb = xlsxwriter.Workbook('ex1.xlsx')
ws = wb.add_worksheet()

data = [
   ['Name', 'Physics', 'Chemistry', 'Maths', 'Total'],
   ['Ravi', 60, 70, 80],
   ['Kiran', 65, 75, 85],
   ['Karishma', 55, 65, 75],
]
for row in range(len(data)):
   for col in range(len(data[row])):
      ws.write(row, col, data[row][col])
      
for row in range(len(data)):
   ws.write_row(6+row,0, data[row])
   
ws.add_table('G6:J9', {'data': data, 'header_row':False})

wb.close()

輸出

執行上述程式並使用 Excel 軟體開啟**ex1.xlsx**。

Cell Notations3
廣告

© . All rights reserved.