今天為大家分享一篇使用將大量數(shù)據(jù)導(dǎo)出到Excel中的技巧心得,可以讓和Excel的數(shù)據(jù)實現(xiàn)互通!具有很好的參考價值,希望對大家有所幫助(建議在電腦端閱讀,代碼案例較多)。一起過來看看吧!
問題描述
為了更好地展示數(shù)據(jù),Excel格式的數(shù)據(jù)文件往往比文本文件更具有優(yōu)勢,但是具體到中,該如何導(dǎo)出數(shù)據(jù)到Excel呢?如果碰到需要導(dǎo)出大量數(shù)據(jù)又該如何操作呢?
具體步驟
Step 1安裝
使用pip 即可,但是在下安裝的是2.2.6版本,在自動安裝的是4.1版本,寫的代碼在下運行沒問題,但上卻報錯了,說是ew=(=wb)少提供一個參數(shù),于是果斷在 237服務(wù)器上我已安裝2.2.6版本的,問題解決。pip ==2.2.6
Step 2 直接上代碼(Ps:代碼中包含xlwt和的兩個實現(xiàn)版本)
# :utf-8
'''
# 希望對大家有幫助哈,請多提問題
by yaoyz
date: 2017/01/24
'''
# 相關(guān)
.ok
# ,封裝了很強大的excel寫的功能
..er
# 一個的數(shù)字轉(zhuǎn)為列字母的方法
.
..book
():
'''Excel相關(guān)操作類'''
(self):
self. = [u'學(xué)生ID',u'學(xué)生姓名',u'聯(lián)系方式',u'知識點ID',u'知識點名稱']
"""
:
讀出txt文件中的每一條記錄,把它保存在list中
Param:
: 要讀出的文件名
:
:返回的記錄的list
"""
(self,):
=[]
=open(,"r")
.():
.(line)
.close()
"""
:
讀出*.xlsx中的每一條記錄,把它保存在中返回
Param:
: 要讀出的文件名
:
:返回的記錄的dict
"""
(self, =".xlsx"):
# 讀取文件
wb = (=)
# 顯示有多少張表
print" range(s):", wb.()
print" name(s):", wb.()
# 取第一張表
= wb.()
ws = wb.([0])
# 顯示表名,表行數(shù),表列數(shù)
print"Work Sheet :",ws.title
print"Work Sheet Rows:",ws.()
print"Work Sheet Cols:",ws.()
# 獲取讀入的excel表格的有多少行,有多少列
=ws.()
=ws.()
print": ",," : ",
# 建立存儲數(shù)據(jù)的字典
= {}
sign=1
# 把數(shù)據(jù)存到字典中
.rows:
=[]
# print "row",row
:
.value,
.(cell.value)
print""
[sign]=
sign+=1
"""
:
讀出*.xlsx中的每一條記錄xlsm發(fā)現(xiàn)不可讀取內(nèi)容,把它保存在中返回
Param:
: 要保存的,一個包含每一條記錄的list
: 保存為的文件名
star:
:
:返回的記錄的dict
"""
(self,,,="save.xlsx"):
# 新建一個
wb = ()
# 新建一個
ew = (=wb)
# 設(shè)置文件輸出路徑與名稱
= .('utf-8')
# 第一個sheet是ws
ws = wb.[0]
# 設(shè)置ws的名稱
ws.title ="range names"
# 寫第一行,標題行
(1,len()+1):
h_col=(h_x)
#print h_col
ws.cell('%s%s'% (h_col,1)).value ='%s'% ([h_x-1])
# 寫第二行及其以后的那些行
i =2
:
=str().strip().split("\t")
(1,len()+1):
col = (x)
ws.cell('%s%s'% (col, i)).value ='%s'% ([x-1].('utf-8'))
i +=1
# 寫文件
ew.save(=)
"""
:
測試輸出Excel內(nèi)容
讀出Excel文件
Param:
: 要讀出的Excel文件名
:
無
"""
(self,):
=xlrd.()
.()
# 獲取所有sheet
.()# [u'', u'']
= .()[1]
# 根據(jù)sheet索引或者名稱獲取sheet內(nèi)容
= .(1)# sheet索引從0開始
= .('')
# sheet的名稱,行數(shù),列數(shù)
.name,.nrows,.ncols
# 獲取整行和整列的值(數(shù)組)
rows = .(3)# 獲取第四行內(nèi)容
cols = .(2)# 獲取第三列內(nèi)容
# 獲取單元格內(nèi)容
.cell(1,0).value
.(1,0)
.row(1)[0].value
# 獲取單元格內(nèi)容的數(shù)據(jù)類型
.cell(1,0).ctype
# 通過名稱獲取
.(u'')
"""
:
設(shè)置單元格樣式
Param:
name: 字體名字
: 字體高度
bold: 是否大寫
:
style: 返回設(shè)置好的格式對象
"""
(self,name,,bold=False):
style = xlwt.()# 初始化樣式
font = xlwt.Font()# 為樣式創(chuàng)建字體
font.name = name# 'Times New Roman'
font.bold = bold
font. =4
font. =
= xlwt.()
.left=6
.right=6
=6
.=6
style.font = font
style. =
"""
:
按照 設(shè)置單元格樣式 把計算結(jié)果由txt轉(zhuǎn)變?yōu)镋xcel存儲
Param:
:要保存的結(jié)果數(shù)據(jù),list存儲
:
將結(jié)果保存為 excel對象中
"""
(self, ,,):
f = xlwt.()# 創(chuàng)建工作簿
# 創(chuàng)建第一個sheet:
#
count=1
= f.(u'', =True)# 創(chuàng)建sheet
# 首行標題:
(len()):
.write(0,p,[p],self.('Times New Roman',250,True))
=self.('Times New Roman',200,False)# style out the loop will work
:
=str(line).strip("\n").split("\t")
(len(str(line).strip("\n").split("\t"))):
.write(count,pp,[pp].('utf-8'),)
count+=1
f.save()# 保存文件
(self):
print"測試讀寫2007及以后的excel文件xlsx,以方便寫入文件更多數(shù)據(jù)"
print"1. 把txt文件讀入到內(nèi)存中xlsm發(fā)現(xiàn)不可讀取內(nèi)容,以list對象存儲"
=self.(".txt")
'''test use to EXCEL 2007'''
print"2. 把文件寫入到Excel表格中"
=self.
=".xlsx"
self.(,,)
print"3. 執(zhí)行完畢,由txt格式文件保存為Excel文件的任務(wù)"
(self):
print" 4. 把txt文件讀入到內(nèi)存中,以list對象存儲"
=self.(".txt")
'''test use xlwt to EXCEL 97-2003'''
print" 5. 把文件寫入到Excel表格中"
=self.
=".xls"
self.(,,)
print"6. 執(zhí)行完畢,由txt格式文件保存為Excel文件的任務(wù)"
=='':
print" Excel "
=()
# 分別使用和xlwt將數(shù)據(jù)寫入文件
.()
.()
'''測試讀出文件,注意不可以讀取xls的文件,xlrd不可以讀取xlsx格式的文件'''
#.pyxl(".xls") # 錯誤寫法
#.pyxl(".xls") # 錯誤寫法
.(".xls")
.pyxl(".xlsx")