国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python玩轉(zhuǎn)Excel的讀寫改實例

2020-02-16 01:18:51
字體:
供稿:網(wǎng)友

摘要:

利用xlrd讀取excel 利用xlwt寫excel 利用xlutils修改excel

利用xlrd讀取excel

先需要在命令行中pip install xlrd;讀取xls文件的流程為:

加載文件->選中第幾個表格->按先行后列的順序讀

通用demo

import xlrdfilename = "test.xls"        #文件路徑wb = xlrd.open_workbook(filename)  #加載這個xls文件sh = wb.sheet_by_index(0)      #選中第1個表格rows = sh.nrows           #rows為該表格的行數(shù)for i in range(1,rows):       #從第二行開始按行讀取  title = sh.cell(i,0).value   #取第i+1行,第1列的數(shù)據(jù)

diy功能

根據(jù)列名獲取內(nèi)容的函數(shù)def get_col_index(name,workbook,sheet):  for i in range(sheet.ncols):    name2 = sheet.cell(0,i).value    print(name2)    if name2 == name:      return i  return -1sheet.cell(1,get_col_index("創(chuàng)建時間")).value

再拓展一點:

sh = wb.sheet_by_name(sheetname)  #通過表格名稱選中表格print(wb.sheet_names())       #打印該xls文件的所有表格名稱sh.row(i)              #獲得第i+1行的所有數(shù)據(jù)組成的listncols = sh.ncols          #獲得該表格的所有列數(shù)sh.row_values(rowx, start_colx=0, end_colx=None)   #獲取第rowx+1行的某幾列的數(shù)據(jù)并組成的listsh.col(colx, start_rowx=0, end_rowx=None) #獲取第colx+1列的某幾行的數(shù)據(jù)并組成的listsh.cell(i,j).value         #獲取第i+1行第j+1列的數(shù)據(jù)sh.cell(i,j).ctype         #獲取第i+1行第j+1列的數(shù)據(jù)類型

注意date類型

說起數(shù)據(jù)類型,補充一點,xlrd讀取xls文件單元格的數(shù)據(jù)類型有五種,數(shù)字與類型的對應(yīng)關(guān)系為:

ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

當(dāng)單元格某個值為date類型時,不加處理輸出的是一個浮點數(shù),此時需要判斷ctype并進行一次轉(zhuǎn)換:

from xlrd import xldate_as_tuplecell = sh.cell(i,10).ctypeif cell.ctype == 3:  date = datetime(*xldate_as_tuple(cell.value, 0))

利用xlwt寫exce

先需要在命令行中pip install xlwt;寫xls文件的流程為:

加載文件->選中第幾個表格->按先行后列的順序讀

通用demo

import xlwtfile = xlwt.Workbook()   #新建個文件sheet = file.add_sheet('test_sheet0',cell_overwrite_ok=True) #新建個表格,指定表名以及是否可覆蓋寫sheet.write(i,j,value)   #在第i+1行和第j+1列寫value(i、j從0開始)file.save("test_xls.xls")  #保存成xls文件并指定文件名

更多功能

#設(shè)置某列的寬度sheet.col(0).width = 200#寫日期style = xlwt.XFStyle()style.num_format_str = 'D-MMM-YY' worksheet.write(0, 0, datetime.datetime.now(), style)#寫公式sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)'))#合并單元格的寫sheet.write_merge(0, 0, 0, 3, 'First Merge')#ps:#write_merge(x, x + h, y, w + y, value, sytle) x和y表示當(dāng)前行列,h和w為要合并的行數(shù)和列數(shù)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 杨浦区| 揭东县| 枞阳县| 怀集县| 张家口市| 都匀市| 临颍县| 菏泽市| 容城县| 长岛县| 富源县| 四平市| 镇赉县| 调兵山市| 定兴县| 桐庐县| 丰县| 专栏| 衡阳市| 灌云县| 新宁县| 南皮县| 汉寿县| 孟州市| 紫云| 广平县| 修水县| 赫章县| 迭部县| 裕民县| 阿克苏市| 依安县| 凤阳县| 靖宇县| 临西县| 靖安县| 泰安市| 昌都县| 清苑县| 贡山| 南宫市|