Zhong__xlrd基本使用
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Zhong__xlrd基本使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                時(shí)間:2020.12.02
環(huán)境:Python3
目的:使用xlrd讀取Excel文件的一般操作
說(shuō)明:
作者:Zhong QQ交流群:121160124 歡迎加入!
?
安裝xlrd
pip install -i https://pypi.douban.com/simple xlrd準(zhǔn)備演示使用的excel文件 demo.xlsx 寫入以下的測(cè)試數(shù)據(jù)
| 1 | 小A | 1 | 2020.12.02 | 
| 2 | 小B | 2 | 2020.12.03 | 
| 3 | 小C | 3 | 2020.12.04 | 
| 4 | 小D | 4 | 2020.12.05 | 
| 5 | 小E | 5 | 2020.12.06 | 
| 6 | 小F | 6 | 2020.12.07 | 
| 7 | 小G | 7 | 2020.12.08 | 
| 8 | 小H | 8 | 2020.12.09 | 
| 9 | 小I | 9 | 2020.12.10 | 
| 10 | 小J | 10 | 2020.12.11 | 
| 11 | 小K | 11 | 2020.12.12 | 
| 12 | 小L | 12 | 2020.12.13 | 
| 13 | 小M | 13 | 2020.12.14 | 
| 14 | 小N | 14 | 2020.12.15 | 
| 15 | 小O | 15 | 2020.12.16 | 
| 16 | 小P | 16 | 2020.12.17 | 
| 17 | 小Q | 17 | 12/18/2020 | 
| 18 | 小R | 18 | 12/19/2020 | 
| 19 | 小S | 19 | 2020年12月20 | 
| 20 | 小T | 20 | 2020年12月21日 | 
如圖
以上寫入了默認(rèn)的Sheet表Sheet1表21行4列的數(shù)據(jù) 第一行為標(biāo)題行 登記日期寫入的數(shù)據(jù)有不同的單元格類型? 以下是常用的一些基本操作
import xlrd from xlrd import xldate_as_datetime from pprint import pprintdef readExcel(path) -> dict:# 打開(kāi)Excel表格 文件名和表名都需要正確ExcelFile = xlrd.open_workbook(path)# 獲取SheetSheet1 = ExcelFile.sheet_by_name('Sheet1') # 通過(guò)名稱獲取Sheet# Sheet1 = ExcelFile.sheet_by_index(0) # 通過(guò)索引獲取Sheet# Sheet屬性 獲取Shee1的名稱、總行數(shù)、總列數(shù)等信息sheet_name = Sheet1.name # 名稱sheet_nrows = Sheet1.nrows # 行數(shù)sheet_ncols = Sheet1.ncols # 列數(shù)print(" Sheet名稱: %s\n" % sheet_name, "Sheet總行數(shù): %s\n" % sheet_nrows, "Sheet總列數(shù): %s\n" % sheet_ncols)print("\n" + "* " * 100)# Sheet單元格屬性cell 對(duì)一個(gè)具體的單元格操作 如獲取第2行第2列單元格數(shù)據(jù)值cell_value1 = Sheet1.cell(1, 1).value # cell的值cell_value2 = Sheet1.cell_value(1, 1) # cell值 等效于cell().valuecell_type = Sheet1.cell_type(1, 1)print("一個(gè)單元格內(nèi)容: \n%s" % cell_value1)print("一個(gè)單元格內(nèi)容: \n%s" % cell_value2)print("一個(gè)單元格內(nèi)容類型: \n%s" % cell_type)print("\n" + "* " * 100)# Sheet獲取一行的數(shù)據(jù)和一列的數(shù)據(jù)及相關(guān)屬性row_value = Sheet1.row(1) # 獲取第2行的數(shù)據(jù) 值的類型有標(biāo)注 [number:1.0, text:'小A', number:1.0, text:'2020.12.02']row_slice_value = Sheet1.row_slice(rowx=1, start_colx=0, end_colx=None) # row()方法的擴(kuò)展 可指定范圍row_values = Sheet1.row_values(rowx=1, start_colx=0, end_colx=None) # 一行數(shù)據(jù) rowx:第幾行 start_colx:從第幾列開(kāi)始 end_colx:到第幾列結(jié)束(None 表示到最后一列) 類似于字符串split方法的概念row_len = Sheet1.row_len(1) # 獲取第二行長(zhǎng)度(至有數(shù)據(jù)的最后一列的長(zhǎng)度)row_types = Sheet1.row_types(rowx=1, start_colx=0, end_colx=None) # 獲取一行數(shù)據(jù)的類型table_header = Sheet1.row_values(rowx=0, start_colx=0, end_colx=None) # 獲取標(biāo)題單元格(第一行)print("一行的值(帶類型): \n%s" % row_value)print("一行指定開(kāi)始和結(jié)束范圍的值(帶類型): \n%s" % row_slice_value)print("一行指定開(kāi)始和結(jié)束范圍的值: \n%s" % row_values)print("一行數(shù)據(jù)的長(zhǎng)度: \n%s" % row_len)print("一行數(shù)據(jù)的類型: \n%s" % row_types)print("第一行的內(nèi)容為: \n%s" % table_header)print("\n" + "* " * 100)# 獲取Sheet所有內(nèi)容 格式為[[row_values], [row_values], ...... ]ls = [] # 定義一個(gè)列表用來(lái)存儲(chǔ)所有的行數(shù)據(jù)for row in range(1, sheet_nrows): # 從第2行開(kāi)始 第1行一般是表頭 以實(shí)際情況為準(zhǔn)# 獲取一行的值 為列表類型values = Sheet1.row_values(rowx=row, start_colx=0, end_colx=None)# 獲取登記日期列的單元格內(nèi)容類型ctype = Sheet1.cell_type(rowx=row, colx=3)# 處理ctype類型值為2/3的日期類型為期望類型if ctype in [2, 3]:# 轉(zhuǎn)換為年月日格式的類型 datemode參數(shù)為時(shí)間基準(zhǔn)標(biāo)識(shí)符 0代表1900-01-01為基準(zhǔn),1代表1904-01-01為基準(zhǔn) 通常選擇0_date = xldate_as_datetime(xldate=Sheet1.cell_value(rowx=row, colx=3), datemode=0).strftime("%Y-%m-%d")values[3] = _date# print(values)ls.append(values)pprint(ls)print("\n" + "* " * 100)return {"msg": "ok"}# 文件的路徑,如果路徑或者文件名有中文前面加一個(gè)r代表原生字符。 res = readExcel(r"C:\Users\Zhong\Desktop\demo.xlsx")print(res)Note
| Type symbol | Type number | Python value | 
| XL_CELL_EMPTY | 0 | empty string '' | 
| XL_CELL_TEXT?? ? ? ? | 1 | a Unicode string | 
| XL_CELL_NUMBER?? ? ? ? | 2 | float | 
| XL_CELL_DATE?? ? ? ? | 3 | float | 
| XL_CELL_BOOLEAN?? ? ? ? | 4 | int; 1 means TRUE, 0 means FALSE | 
| XL_CELL_ERROR?? ? ? ? | 5 | int representing internal Excel codes; for a text representation, refer to the supplied dictionary error_text_from_code | 
| XL_CELL_BLANK?? ? ? ? | 6 | empty string ''. Note: this type will appear only when open_workbook(..., formatting_info=True) is used | 
?
?
加入qq群交流技術(shù)? 關(guān)注微信公眾號(hào)
?
?
總結(jié)
以上是生活随笔為你收集整理的Zhong__xlrd基本使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 安装winrunner和HP QTP
- 下一篇: c语言双人贪吃蛇-基于图形库实现
