python使用xlrd與xlwt對(duì)excel的讀寫和格式設(shè)定
前言
python操作excel主要用到xlrd和xlwt這兩個(gè)庫(kù),即xlrd是讀excel,xlwt是寫excel的庫(kù)。本文主要介紹了python使用xlrd與xlwt對(duì)excel的讀寫和格式設(shè)定,下面話不多說,來看看詳細(xì)的實(shí)現(xiàn)過程。
腳本里先注明# -*- coding:utf-8 -*-
1. 確認(rèn)源excel存在并用xlrd讀取第一個(gè)表單中每行的第一列的數(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準(zhǔn)備將從源表中讀出的數(shù)據(jù)寫入新表,并設(shè)定行寬和表格的格式。合并單元格2行8列后寫入標(biāo)題,并設(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'這是標(biāo)題',tittle_style)
3. 當(dāng)函數(shù)中要用到全局變量時(shí),注意加global。否則會(huì)出現(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ù)組用逗號(hào)分隔后寫入新的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. 當(dāng)從excel中讀取的日期格式為xldate時(shí),就需要使用xlrd的xldate_as_tuple來處理為date格式。先判斷表格的ctype確實(shí)是xldate才能開始操作,否則會(huì)報(bào)錯(cuò)。之后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é)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- python中使用xlrd、xlwt操作excel表格詳解
- Python使用xlwt模塊操作Excel的方法詳解
- Python xlwt設(shè)置excel單元格字體及格式
- Python第三方庫(kù)xlrd/xlwt的安裝與讀寫Excel表格
- python中使用 xlwt 操作excel的常見方法與問題
- 使用Python和xlwt向Excel文件中寫入中文的實(shí)例
- python使用xlrd和xlwt讀寫Excel文件的實(shí)例代碼
- Python操作excel的方法總結(jié)(xlrd、xlwt、openpyxl)
- Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)
- 利用Python第三方庫(kù)xlwt寫入數(shù)據(jù)到Excel工作表實(shí)例代碼
相關(guān)文章
基于Google的Python編碼規(guī)范標(biāo)準(zhǔn)
這篇文章主要介紹了基于Google的Python編碼規(guī)范標(biāo)準(zhǔn),其中包含了分號(hào),行長(zhǎng)度,括號(hào),縮進(jìn),空行,空格等基本符號(hào)的使用規(guī)則,有需要的朋友可以參考下2021-08-08
如何利用Python實(shí)現(xiàn)一個(gè)論文降重工具
文章去重(或叫網(wǎng)頁去重)是根據(jù)文章(或網(wǎng)頁)的文字內(nèi)容來判斷多個(gè)文章之間是否重復(fù),下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)論文降重工具的相關(guān)資料,需要的朋友可以參考下2021-07-07
python實(shí)現(xiàn)經(jīng)緯度采樣的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)經(jīng)緯度采樣的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Python flask框架實(shí)現(xiàn)查詢數(shù)據(jù)庫(kù)并顯示數(shù)據(jù)
這篇文章主要介紹了Python flask框架實(shí)現(xiàn)查詢數(shù)據(jù)庫(kù)并顯示數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python利用smtplib實(shí)現(xiàn)郵件發(fā)送
在當(dāng)今數(shù)字時(shí)代,電子郵件已成為我們生活和工作中不可或缺的一部分,本篇文章將為你講解如何在Python發(fā)送郵件,并為你提供實(shí)現(xiàn)的多種方式,希望對(duì)大家有所幫助2023-06-06
python使用IP歸屬地查詢API追蹤網(wǎng)絡(luò)活動(dòng)
這篇文章主要為大家介紹了python使用IP歸屬地查詢API追蹤網(wǎng)絡(luò)活動(dòng)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
淺談Python 多進(jìn)程默認(rèn)不能共享全局變量的問題
今天小編就為大家分享一篇淺談Python 多進(jìn)程默認(rèn)不能共享全局變量的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01

