python解析xls表我們用到了python中的xlrd模塊
首先我們安裝xlrd模塊:
下載xlrd:https://pypi.org/project/xlrd/#files
然後我們瞭解下常用的api,然後通過簡單的例子,將xls中的數據寫入到lua文件中
1、導入擴展包
import xlrd
2、打開Excel文件讀取數據
data = xlrd.open_workbook("D:/a.xlsx") #括號裏面的參數是你想要打開文件路徑
3、使用技巧
(1)獲取一個工作表
table = data.sheets()[0] #通過索引順序獲取
table = data.sheet_by_index(0) #通過索引順序獲取
table = data.sheet_by_name(u‘Sheet1‘) #通過名稱獲取
(2)獲取整行和整列的值(數組)
table.row_values(i)
table.col_values(i)
(3)獲取行數和列數
nrows = table.nrows
ncols = table.ncols
(4)循環行列表數據
for i in range(nrows ):
print table.row_values(i)
(5)單元格
table.cell(rowx,colx)
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(3,2).value
(6)使用行列索引
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value
(7)簡單的寫入
row = 0
col = 0
# 類型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1 value = ‘單元格的值‘
xf = 0 # 擴展的格式化
table.put_cell(row, col, ctype, value, xf)
table.cell(0,0) #單元格的值‘
table.cell(0,0).value #單元格的值‘
xls2Lua.py
#!/usr/bin/env python
#coding=utf-8
import sys
import xlrd
import os
import os.path
import types
reload(sys)
sys.setdefaultencoding('utf-8')
#打開文件
data = xlrd.open_workbook("test.xls")
#通過索引讀取頁籤,索引從0開始
sheet1 = data.sheet_by_index(0)
#通過頁簽名稱讀取頁籤
#sheet2 = data.sheet_by_name("aa")
#取所有的頁籤清單
sheet = data.sheets()
# 獲取有幾個頁籤
num = data.nsheets
# 獲取頁簽名稱
name = sheet1.name
#獲取sheet1的行數
rows = sheet1.nrows
#獲取sheet1的列數
clos = sheet1.ncols
# 獲取整行的數據(第三行)
#rowData = sheet1.row_values(2)
# 獲取整列的數據(第三列)
#colData = sheet1.col_values(2)
# 獲取某一個單元格的數據(第二行第三列)
oneData = sheet1.cell(1,2)
pf = open("test.lua","w")
pf.write("return\n{\n")
list = {}
for i in range(data.nsheets):
sheet = data.sheet_by_index(i)
for i in range(sheet.nrows):
row_value = sheet.row_values(i)
ncols = sheet.ncols
#print(row_value)
if i > 0:
pf.write("\t{")
for j in range(ncols):
if i == 0:
list[j] = row_value[j]
else:
#print(row_value[j])
if type(row_value[j]) == types.FloatType:
print("this valus is a float type===",row_value[j])
pf.write(str(list[j]) + " = " + str(row_value[j]) + ",")
if i > 0:
pf.write("}\n")
pf.write("}\n")
pf.close()
test.xls
導出後的test.lua文件
其中 一些具體的類型可以根據需要進一步轉換(文中沒有實現)
另外,此教程使用的python版本是2.7的,在3.0之後已經沒有沒有types.xxxx類型了,可以直接用默認的類型名代替。