日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 91高清在线视频 | 欧美日韩一卡二卡 | 亲子乱对白乱都乱了 | 亚洲人 女学生 打屁股 得到 | 日韩精品一区二区三区在线视频 | 国产婷婷精品 | 日韩xx视频 | 国产福利免费观看 | 半推半就一ⅹ99av | 国产女主播福利 | 日韩在线视频播放 | 能免费看黄色的网站 | 97超碰人人干 | 女女百合高h喷汁呻吟玩具 www.亚洲一区 | 青青操国产视频 | www.性欧美| 国产精品久久久久电影 | 国产欧美日韩综合精品一区 | 日韩黄色一级视频 | 午夜精品久久久久久久久久久 | 免费看污视频的网站 | 91麻豆精品一区二区三区 | 久久天天东北熟女毛茸茸 | 成人性生交大片 | av观看一区 | 国产成人综合一区二区三区 | 精品乱子伦一区二区三区 | www.一起操| 亚洲一区二区三区在线视频 | 97色伦影院 | 久久艹精品视频 | 日韩中文字幕亚洲 | 天天碰天天碰 | 凸凹人妻人人澡人人添 | av黄色一级片| 一级毛片基地 | 超碰在| 欧美透逼视频 | 2021国产在线视频 | 国产亚洲久一区二区 | 美日韩一区二区 | 中文av免费 | 日本一品道 | 久久午夜精品视频 | 少妇精品导航 | 亚洲一区人妻 | 日本成人激情 | 毛片麻豆 | 91抖音在线观看 | 最新啪啪网站 | 久久高潮视频 | 日本韩国欧美中文字幕 | 日本69式三人交 | 日本www视频在线观看 | 少妇三级全黄 | 2022精品国偷自产免费观看 | 日韩毛片免费看 | 国产一级二级 | 欧美偷拍一区二区 | 成人小视频免费在线观看 | 国产精选一区二区 | 日韩毛片网 | 19禁大尺度做爰无遮挡电影 | 亚洲 欧美 激情 小说 另类 | 亚洲国产成人在线 | 国产又粗又猛视频免费 | 日韩成人在线播放 | 国产一级黄色大片 | 国产香蕉一区二区三区 | 九九热精品| 欧美片一区二区 | 亚洲一二三在线 | 亚洲国产精品一 | 天天干中文字幕 | 粉嫩av在线播放 | 男人手机天堂 | av毛片在线看 | 黄色大片网址 | av男人天堂av| 嫩草研究院在线观看 | 国产一区二区三区在线视频 | 国产成人超碰人人澡人人澡 | 日韩av成人在线 | 国产精品毛片一区二区在线看舒淇 | 日韩成人在线观看视频 | 就去色综合 | 巨乳动漫美女 | 精品人妻少妇嫩草av无码专区 | 女同性做受全过程动图 | 日韩av手机在线观看 | 爱爱福利社| 美女天天干 | 中文字幕在线播放视频 | 久操热 | 精品日本一区二区 | www日本免费 | 国产免费一区二区三区最新不卡 | 欧美巨乳在线 | 欧美肥老妇|