網站首頁 編程語言 正文
工具
python3.7
Pycharm
Excel
xlwt&xlrd
讀取Excel文件內容
當前文件夾下有一個名為“股票數據.xlsx”的Excel文件,可以按照下列代碼方式來操作它。
import xlrd # 使用xlrd模塊的open_workbook函數打開指定Excel文件并獲得Book對象(工作簿) wb = xlrd.open_workbook('股票數據.xlsx') # 通過Book對象的sheet_names方法可以獲取所有表單名稱 sheetname = wb.sheet_names()[0] # 通過指定的表單名稱獲取Sheet對象(工作表) sheet = wb.sheet_by_name(sheetname) # 通過Sheet對象的nrows和ncols屬性獲取表單的行數和列數 print(sheet.nrows, sheet.ncols) for row in range(sheet.nrows): for col in range(sheet.ncols): # 通過Sheet對象的cell方法獲取指定Cell對象(單元格) # 通過Cell對象的value屬性獲取單元格中的值 value = sheet.cell(row, col).value # 對除首行外的其他行進行數據格式化處理 if row > 0: # 第1列的xldate類型先轉成元組再格式化為“年月日”的格式 if col == 0: # xldate_as_tuple函數的第二個參數只有0和1兩個取值 # 其中0代表以1900-01-01為基準的日期,1代表以1904-01-01為基準的日期 value = xlrd.xldate_as_tuple(value, 0) value = f'{value[0]}年{value[1]:>02d}月{value[2]:>02d}日' # 其他列的number類型處理成小數點后保留兩位有效數字的浮點數 else: value = f'{value:.2f}' print(value, end='\t') print() # 獲取最后一個單元格的數據類型 # 0 - 空值,1 - 字符串,2 - 數字,3 - 日期,4 - 布爾,5 - 錯誤 last_cell_type = sheet.cell_type(sheet.nrows - 1, sheet.ncols - 1) print(last_cell_type) # 獲取第一行的值(列表) print(sheet.row_values(0)) # 獲取指定行指定列范圍的數據(列表) # 第一個參數代表行索引,第二個和第三個參數代表列的開始(含)和結束(不含)索引 print(sheet.row_slice(3, 0, 5))
寫入Excel文件內容
Excel文件寫入可以通過xlwt 模塊的Workbook類創建工作簿對象,通過工作簿對象的add_sheet方法可以添加工作表,通過工作表對象的write方法可以向指定單元格中寫入數據,最后通過工作簿對象的save方法將工作簿寫入到指定的文件或內存中。下面代碼操作了一個學員成績表的寫入。
import random import xlwt student_names = ['關羽', '張飛', '趙云', '馬超', '黃忠'] scores = [[random.randint(40, 100) for _ in range(3)] for _ in range(5)] # 創建工作簿對象(Workbook) wb = xlwt.Workbook() # 創建工作表對象(Worksheet) sheet = wb.add_sheet('一年級二班') # 添加表頭數據 titles = ('姓名', '語文', '數學', '英語') for index, title in enumerate(titles): sheet.write(0, index, title) # 將學生姓名和考試成績寫入單元格 for row in range(len(scores)): sheet.write(row + 1, 0, student_names[row]) for col in range(len(scores[row])): sheet.write(row + 1, col + 1, scores[row][col]) # 保存Excel工作簿 wb.save('考試成績表.xlsx')
Excel文件樣式調整
還可以通過XFStyle
對象來設置單元格的不同樣式。主要包括字體(Font)、對齊方式(Alignment)、邊框(Border)和背景(Background)的設置。
header_style = xlwt.XFStyle() pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 0 - 黑色、1 - 白色、2 - 紅色、3 - 綠色、4 - 藍色、5 - 黃色、6 - 粉色、7 - 青色 pattern.pattern_fore_colour = 5 header_style.pattern = pattern titles = ('姓名', '語文', '數學', '英語') for index, title in enumerate(titles): sheet.write(0, index, title, header_style)
設置表頭的位置
align = xlwt.Alignment() # 垂直方向的對齊方式 align.vert = xlwt.Alignment.VERT_CENTER # 水平方向的對齊方式 align.horz = xlwt.Alignment.HORZ_CENTER header_style.alignment = align
設置單元格的寬高
# 設置行高為40px sheet.row(0).set_style(xlwt.easyxf(f'font:height {20 * 40}')) titles = ('姓名', '語文', '數學', '英語') for index, title in enumerate(titles): # 設置列寬為200px sheet.col(index).width = 20 * 200 # 設置單元格的數據和樣式 sheet.write(0, index, title, header_style)
總結
其他操作Excel文件的三方庫(如openpyxl)大家有興趣可以自行了解。掌握了Python程序操作Excel的方法,可以解決日常辦公中很多繁瑣的處理Excel電子表格工作,最常見就是將多個數據格式相同的Excel文件合并到一個文件以及從多個Excel文件或表單中提取指定的數據。當然,如果要對表格數據進行處理,使用Python數據分析神器之一的pandas庫可能更為方便,因為pandas庫封裝的函數以及DataFrame類可以完成大多數數據處理的任務。
原文鏈接:https://blog.csdn.net/AI19970205/article/details/124482605
相關推薦
- 2022-04-25 基于Matplotlib?調用?pyplot?模塊中?figure()?函數處理?figure圖形對
- 2022-09-26 python?opencv實現目標外接圖形_python
- 2023-01-17 React?Hooks核心原理深入分析講解_React
- 2022-09-13 Django?中使用日志的方法_python
- 2022-06-01 Python?調用?C++?傳遞numpy?數據詳情_python
- 2022-08-25 python并發場景鎖的使用方法_python
- 2022-09-10 關于pandas.date_range()的用法及說明_python
- 2022-09-20 一文詳解C++中動態內存管理_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支