需要處理excel里配表的數(shù)據(jù)葵陵,ms的產(chǎn)品數(shù)據(jù)格式不是很簡單液荸,直接操作有點麻煩瞻佛⊥迅荩基本上這種活就直接上python了娇钱。我不用了解也知道肯定有包。xlrd是一個python的包绊困,可以方便的操作excel里的數(shù)據(jù)文搂。
最簡單操作流程:
首先import xlrd
然后用xlrd.open_work(filename)來打開.xlsx文件
接著使用sheet_by_name(sheetname)來打開工作表,也可以用sheet_by_index(0)秤朗,直接索引sheets()[0]
sheet.nrows可以用于遍歷這個sheet中每一行數(shù)據(jù)煤蹭,同理ncols獲取列
sheet.row_values(row)可以用來遍歷row里面的每個item的數(shù)據(jù),同理col_values
然后各種操作一番之后取视,自己保存
以上是讀數(shù)據(jù)硝皂,如果想反手寫excel,重點在于確定具體的單元格作谭,使用cell(x,y).value讀取稽物,使用put_cell(row,col, value,xf)
xf是擴(kuò)展格式,自行理解吧
In cell XFs, flag==0 means the attributes of the parent style XF are used, (but only if the attributes are valid there); flag==1 means the attributes of this XF are used.
格式的問題
基本上就是轉(zhuǎn)utf-8的問題折欠,只要unicode(item).encode("utf-8")就行贝或,或者轉(zhuǎn)別的也ojbk
一個簡單的代碼:
import xlrd
import csv
import os, shutil
def csv_from_excel():
dstPath = "../outputassets/share_assetbundles/ios/data/"
for file in os.listdir('.'):
if os.path.isfile(file) and os.path.splitext(file)[1]=='.xlsx' :
#open workbook
wb = xlrd.open_workbook(file)
#find target sheet
sh = wb.sheet_by_name('Sheet1')
#create corresponding csv file
csv_name = dstPath + os.path.splitext(file)[0] + '.csv'
csv_name_android = androidPath + os.path.splitext(file)[0] + '.csv'
your_csv_file = open(csv_name, 'wb')
wr = csv.writer(your_csv_file)
for rownum in xrange(sh.nrows):
line = []
for entry in sh.row_values(rownum):
if isinstance(entry, float):
entry_int = int(entry)
if entry_int == entry:
line.append(entry_int)
else:
line.append(unicode(entry).encode("utf-8"))
wr.writerow(line)
your_csv_file.close()
if __name__ == '__main__':
csv_from_excel()