日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python 处理带中文 Excel 文件

發(fā)布時(shí)間:2025/4/5 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 处理带中文 Excel 文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 處理帶中文 Excel 文件

  • Python-Excel常規(guī)操作
    • 安裝庫(kù)
    • 寫入 Excel
    • 讀取 Excel
      • 測(cè)試文件
    • 處理中文
    • Ref
    • 所遇到問(wèn)題

Python-Excel常規(guī)操作

注意,是 xls 文件,不是 xlsx 文件

安裝庫(kù)

$ pip3 install xlrd xlwt xlutils

安裝比較簡(jiǎn)單,直接用 pip 工具安裝三個(gè)庫(kù)即可,安裝命令如下:

安裝完成提示 Successfully installed xlrd-1.2.0 xlutils-2.0.0 xlwt-1.3.0 即表示安裝成功。

寫入 Excel

接下來(lái)我們就從寫入 Excel 開(kāi)始,話不多說(shuō)直接看代碼如下:

# excel_w.py# 導(dǎo)入 xlwt 庫(kù) import xlwt# 創(chuàng)建 xls 文件對(duì)象 wb = xlwt.Workbook()# 新增兩個(gè)表單頁(yè) sh1 = wb.add_sheet('成績(jī)') sh2 = wb.add_sheet('匯總')# 然后按照位置來(lái)添加數(shù)據(jù),第一個(gè)參數(shù)是行,第二個(gè)參數(shù)是列 # 寫入第一個(gè)sheet sh1.write(0, 0, '姓名') sh1.write(0, 1, '成績(jī)') sh1.write(1, 0, '張三') sh1.write(1, 1, 88) sh1.write(2, 0, '李四') sh1.write(2, 1, 99.5)# 寫入第二個(gè)sheet sh2.write(0, 0, '總分') sh2.write(1, 0, 187.5)# 最后保存文件即可 wb.save('test_w.xls')

讀取 Excel

測(cè)試文件


# excel_r.py# 導(dǎo)入 xlrd 庫(kù) import xlrd# 打開(kāi)剛才我們寫入的 test_w.xls 文件 wb = xlrd.open_workbook("test_w.xlsx")# 獲取并打印 sheet 數(shù)量 print("sheet 數(shù)量:" + str(wb.nsheets))# 獲取并打印 sheet 名稱 # Python 編碼問(wèn)題,需要單獨(dú)輸出 print( "sheet 名稱如下:") for i in wb.sheet_names():print i lis = (1)# 根據(jù) sheet 索引獲取內(nèi)容 sh1 = wb.sheet_by_index(0) # 或者也可根據(jù) sheet 名稱獲取內(nèi)容 # sh = wb.sheet_by_name('成績(jī)')# 獲取并打印該 sheet 行數(shù)和列數(shù) # print( u"sheet" + str(sh1.name) + "共" + str(sh1.nrows) + "行" +str(sh1.ncols)+ "列") print ("sheetName:") print (sh1.name) print ("行數(shù):") print (sh1.nrows) print ("列數(shù):") print (sh1.ncols)# 獲取并打印某個(gè)單元格的值 print ("第一行第二列的值為:") print (sh1.cell_value(0, 1))# 獲取整行或整列的值 rows = sh1.row_values(0) # 獲取第一行內(nèi)容 cols = sh1.col_values(1) # 獲取第二列內(nèi)容# 打印獲取的行列值 print ("第一行的值為:") for i in rows:print (i) print ("第二列的值為:") for j in cols:print (j)# 獲取單元格內(nèi)容的數(shù)據(jù)類型 print ("第二行第一列的值類型為:") print (sh1.cell(1, 0).ctype)# 遍歷所有表單內(nèi)容 # 遍歷所有表單 for sh in wb.sheets():# 遍歷所有行數(shù)for r in range(sh.nrows):# 遍歷所有列數(shù)for l in range(sh.ncols):# 打印指定單元格內(nèi)容print (sh.cell_value(r, l))

細(xì)心的朋友可能注意到,這里我們可以獲取到單元格的類型,上面我們讀取類型時(shí)獲取的是數(shù)字1,那1表示什么類型,又都有什么類型呢?別急下面我們通過(guò)一個(gè)表格展示下:

數(shù)值類型說(shuō)明
0empty
1string字符串
2number數(shù)字
3date日期
4boolean布爾值
5error錯(cuò)誤

通過(guò)上面表格,我們可以知道剛獲取單元格類型返回的數(shù)字1對(duì)應(yīng)的就是字符串類型。

處理中文

import xlrd #import chardet data = xlrd.open_workbook("emotion.xlsx") table = data.sheets()[0] nrows = table.nrows for i in range(nrows): #print chardet.detect(str(table.row_values(i)))print table.row_values(i)

可是這樣在Linux Terminal 打印出來(lái)的是亂碼,把打印語(yǔ)句改成:

print str(table.row_values(i)).decode("unicode_escape").encode("utf8")

為什么是這樣? 可以從Ubuntu 的系統(tǒng)設(shè)置中看到,控制器顯示的字符是UTF8的,所以最后需要encode成UTF8的,2.為什么要用decode? 因?yàn)橐猠ncode成UTF8,得是unicode格式的字符串才行,但是默認(rèn)的字符串是str型的,所有需要把其他的字符編碼轉(zhuǎn)成UNICODE才行,然后,因?yàn)榇蛴〕鰜?lái)的亂碼是. u’\XXX’ 這種形式, 所以根據(jù)經(jīng)驗(yàn)應(yīng)該是unicode_escape形式。

Ref

  • Python 操作 Excel
  • 官方文檔
  • Python 處理中文 Excel
  • ‘a(chǎn)scii’ codec can’t decode byte 0xef in position 0: ordinal not in range(128)
  • Python——str字符串和unicode字符串
  • 用python操作excel的強(qiáng)大工具:openpyxl(附上實(shí)例腳本)
  • Python讀寫Excel表格,就是這么簡(jiǎn)單粗暴又好用
  • 所遇到問(wèn)題

  • 使用了 pip3 install xlrd xlutils xlwt 安裝擴(kuò)展包,也使用 pip list 和 pip3 list 指令均可以查找到此擴(kuò)展包已被安裝,但只能在 python2 中執(zhí)行 import xlrd 指令,在 python3 中無(wú)法導(dǎo)入。
    暫未解決。
  • Python 編碼指令問(wèn)題。讀取 Excel 文件后,執(zhí)行 print 打印出來(lái)的是 \xe6\x95\xb0\xe9\x87\x8f 或 u'\u6210\u7ee9'
  • ‘a(chǎn)scii’ codec can’t encode characters in position 0-1: ordinal not in range(128)
  • 總結(jié)

    以上是生活随笔為你收集整理的Python 处理带中文 Excel 文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 少妇又色又紧又爽又刺激视频 | 亚洲av无码国产精品久久久久 | free性欧美hd精品4k | 91看片在线看| 国产午夜毛片 | 九色蝌蚪9l视频蝌蚪9l视频 | 欧美伦理影院 | 久久综合伊人77777蜜臀 | 性欧美精品中出 | 国产高潮av| 日韩欧美超碰 | 欧美人妖老妇 | 免费国产精品视频 | 午夜精品免费视频 | 在线观看成年人视频 | 亚洲一区二区三区精品视频 | av观看网站 | 可以免费看的黄色 | 欧美老女人性视频 | 少妇超碰 | 久久久一级片 | 国产成人在线视频免费观看 | 欧美一级高清片 | 超碰在线观看91 | 91丨九色丨黑人外教 | 冲田杏梨av | 麻豆精品自拍 | 一区二区三区视频在线 | 久久无码视频一区 | 国产精品午夜在线观看 | 日b影院| av夜夜 | 黄色片小视频 | 污网站在线免费看 | 丰满人妻一区二区三区免费 | 国产一极毛片 | 国产宾馆实践打屁股91 | 亚洲第一av在线 | 台湾佬中文字幕 | 日日干日日 | 青娱乐青青草 | 99热在线免费观看 | 欧美在线视频一区二区三区 | 伊人久操 | 天堂а在线中文在线新版 | 国产日韩中文字幕 | 永久av免费在线观看 | 亚洲精品国产成人av在线 | 黄色网址大全免费 | 五月婷婷激情综合网 | 久久国产色av免费观看 | 快播怡红院 | 欧美性一级片 | 九九九在线 | 国产精品久久久久久 | 日本东京热一区二区三区 | 中文字幕精品国产 | 国产黄色片免费观看 | 国产伦精品一区二区三区高清版 | 日本美女视频一区 | 尤物视频在线观看视频 | 干美女少妇 | 99自拍偷拍 | 888奇米影视| 最近最新中文字幕 | 国产人妖av | 肉色丝袜小早川怜子av | 久久高清毛片 | 超碰91在线 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | 中文字幕在线观看视频www | 国产精品免费一区二区三区 | a级黄毛片 | 91免费看| 黑人借宿巨大中文字幕 | 特级一级片 | 天天噜日日噜 | 韩国美女视频在线观看18 | 温柔少妇的高潮呻吟 | 老司机在线观看视频 | 亚洲免费视频一区二区三区 | 综合欧美亚洲 | 欧美日韩国产精品一区二区 | 日本在线一本 | 玉女心经是什么意思 | 黑人专干日本人xxxx | 久久精品一区二区 | 免费视频毛片 | 亚洲一区在线视频观看 | 国产视频aaa | 国产偷人妻精品一区二区在线 | 亚洲乱码一区二区 | 亚洲成人乱码 | 老熟妻内射精品一区 | 亚洲成人精品av | 亚洲男人天堂网址 | 69xx网站| 一区二区在线视频播放 | 精品视频在线观看一区二区 |