數(shù)值 | 類(lèi)型 | 說(shuō)明 |
---|---|---|
0 | empty | 空 |
1 | string | 字符串 |
2 | number | 數(shù)字 |
3 | date | 日期 |
4 | boole | 布爾值 |
5 | error | 錯(cuò)誤 |
代碼
import xlrd # 打開(kāi) xls文件 wb = xlrd.open_workbook("example-2021-03-09.xls") # 獲取并打印 sheet 數(shù)量 print("sheet 數(shù)量:", wb.nsheets) # sheet 數(shù)量: 2 # 獲取并打印 sheet 名稱(chēng) print("sheet 名稱(chēng):", wb.sheet_names()) # sheet 名稱(chēng): ['Score Sheet', 'Record Test Sheet'] # 根據(jù) sheet 索引獲取內(nèi)容 sh1 = wb.sheet_by_index(0) # 或者 # 也可根據(jù) sheet 名稱(chēng)獲取內(nèi)容 # sh = wb.sheet_by_name('Score Sheet') # 獲取并打印該 sheet 行數(shù)和列數(shù) print(u"sheet: %s表單 共 %d 行 %d 列" % (sh1.name, sh1.nrows, sh1.ncols)) # sheet: Score Sheet表單 共 4 行 8 列 # 獲取并打印某個(gè)單元格的值 print("第一行第二列的值為:", sh1.cell_value(0, 1)) # 第一行第二列的值為: 班級(jí) # 獲取整行或整列的值 row_info = sh1.row_values(0) # 獲取第一行內(nèi)容 col_info = sh1.col_values(1) # 獲取第二列內(nèi)容 # 打印獲取的行列值 print("第一行的值為:", row_info) # 第一行的值為: ['時(shí)間', '班級(jí)', '姓名', '語(yǔ)文', '數(shù)學(xué)', '英語(yǔ)', '理綜', '總分'] print("第二列的值為:", col_info) # 第二列的值為: ['班級(jí)', '高三三班', '高三三班', '高三三班'] # 獲取單元格內(nèi)容的數(shù)據(jù)類(lèi)型,注意這里的值 另有含義 print("第二行第一列的【值類(lèi)型】為:", sh1.cell(1, 0).ctype) # 第二行第一列的【值類(lèi)型】為: 3 # 遍歷所有表單內(nèi)容 for sh in wb.sheets(): for r in range(sh.nrows): # 輸出指定行內(nèi)容,這里包含原有類(lèi)型指定,不能直接獲取到指定列的值 row_val_list = sh.row(r) print(row_val_list) # [text:'時(shí)間', text:'班級(jí)', text:'姓名', text:'語(yǔ)文', text:'數(shù)學(xué)', text:'英語(yǔ)', text:'理綜', text:'總分'] # 遍歷行內(nèi),輸出當(dāng)前行內(nèi)的所有列值 col_val_list = [col_val.value for col_val in row_val_list] print(col_val_list)
修改 Excel 是通過(guò) xlutils 庫(kù)的 copy 方法將原來(lái)的 Excel 整個(gè)復(fù)制一份,然后再做修改操作,最后再保存
修改前
修改后
上代碼
import xlrd from xlutils.copy import copy # 打開(kāi) excel 文件, 帶格式復(fù)制 read_book = xlrd.open_workbook("example-2021-03-09.xls", formatting_info=True) # 復(fù)制一份 wb = copy(read_book) # 選取第一個(gè)表單 sh1 = wb.get_sheet(0) # 在第五行新增寫(xiě)入數(shù)據(jù) sh1.write(4, 0, '2020-12-16') sh1.write(4, 1, '高三三班') sh1.write(4, 2, '小魚(yú)仙倌兒') sh1.write(4, 3, 150) sh1.write(4, 4, 150) sh1.write(4, 5, 150) sh1.write(4, 6, 300) # 選取第二個(gè)表單 sh2 = wb.get_sheet(1) # 替換總成績(jī)數(shù)據(jù) sh2.write(1, 2, 100) # 保存 wb.save('example-2021-03-09.xls')
注意,復(fù)制 xls這里有格式問(wèn)題
似乎沒(méi)有任何簡(jiǎn)單的方法可以保留單元格的格式;它總是被吹走并設(shè)置為空白。
https://www.coder.work/article/80896
https://zhuanlan.zhihu.com/p/128674458
附錄
參考:http://www.ityouknow.com/python/2019/12/29/python-excel-103.html
官網(wǎng):http://www.python-excel.org/
到此這篇關(guān)于python讀寫(xiě)修改Excel之xlrdxlwtxlutils的文章就介紹到這了,更多相關(guān)python讀寫(xiě)修改Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:西寧 梅州 錫林郭勒盟 懷化 石家莊 昆明 浙江 文山
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python讀寫(xiě)修改Excel之xlrd&xlwt&xlutils》,本文關(guān)鍵詞 python,讀寫(xiě),修改,Excel,之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。