99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀python使用xlrd與xlwt對excel的讀寫和格式設(shè)定
python使用xlrd與xlwt對excel的讀寫和格式設(shè)定
2018-06-12
收藏

python使用xlrd與xlwt對excel的讀寫和格式設(shè)定

python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。本文主要介紹了python使用xlrd與xlwt對excel的讀寫和格式設(shè)定,下面話不多說,來看看詳細的實現(xiàn)過程。
腳本里先注明# -*- coding:utf-8 -*-? ?
1.? 確認源excel存在并用xlrd讀取第一個表單中每行的第一列的數(shù)值。
?? ?
import xlrd, xlwt
import os
?
assert os.path.isfile('source_excel.xls'),"There is no timesheet exist. Exit..."
?
book = xlrd.open_workbook('source_excel.xls')
sheet=book.sheet_by_index(0)
?
for rows in range(sheet.nrows):
?value = sheet.cell(rows,0).value
2. 用xlwt準備將從源表中讀出的數(shù)據(jù)寫入新表,并設(shè)定行寬和表格的格式。合并單元格2行8列后寫入標題,并設(shè)定格式為之前定義的tittle_style。
使用的是write_merge。?? ?
wbk = xlwt.Workbook(encoding='utf-8')
sheet_w = wbk.add_sheet('write_after', cell_overwrite_ok=True)
sheet_w.col(3).width = 5000
tittle_style = xlwt.easyxf('font: height 300, name SimSun, colour_index red, bold on; align: wrap on, vert centre, horiz center;')
sheet_w.write_merge(0,2,0,8,u'這是標題',tittle_style)

3. 當函數(shù)中要用到全局變量時,注意加global。否則會出現(xiàn)UnboundLocalError:local variable'xxx' referenced before assignment.?? ?
check_num = 0
?
def check_data(sheet):
?global check_num
?check_num=check_num+1

4. 寫入日期和帶格式的數(shù)值。原來從sheet中讀取的日期格式為2014/4/10,處理后只保留日期并做成數(shù)組用逗號分隔后寫入新的excel。
?? ?
date_arr = []
date=sheet.cell(row,2).value.rsplit('/')[-1]
if date not in date_arr:
? date_arr.append(date)
sheet_w.write_merge(row2,row2,6,6,date_num, normal_style)
sheet_w.write_merge(row2,row2,7,7,','.join(date_arr), normal_style)

5. 當從excel中讀取的日期格式為xldate時,就需要使用xlrd的xldate_as_tuple來處理為date格式。先判斷表格的ctype確實是xldate才能開始操作,否則會報錯。之后date格式可以使用strftime來轉(zhuǎn)化為string。如:date.strftime("%Y-%m-%d-%H")?? ?
from datetime import date,datetime
from xlrd import xldate_as_tuple
?
if (sheet.cell(rows,3).ctype == 3):
? num=num+1
? date_value = xldate_as_tuple(sheet.cell_value(rows,3),book.datemode)
? date_tmp = date(*date_value[:3]).strftime("%d")

6. 最后保存新寫的表?? ?
wbk.save('new_excel.xls')
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }