網站首頁 編程語言 正文
一、前言介紹
xlrd:可以對xlsx、xls、xlsm文件進行讀操作且效率高。
xlwt:主要對xls文件進行寫操作且效率高,但是不能執行xlsx文件。
xlrd
是用來從Excel中讀寫數據的,但通常只用它進行讀操作,寫操作會相對于專門寫入的模塊麻煩一些。
xlwt
只能對Excel進行寫操作。xlwt和xlrd不光名字像,連很多函數和操作格式也是完全相同。
二、安裝
在命令行或者終端中使用pip安裝:
pip install Xlrd pip install xlwt
三、xlrd常用操作
??用xlrd進行讀取比較方便,流程和手動操作Excel一樣,打開工作簿(Workbook),選擇工作表(sheets),然后操作單元格(cell)。
1、打開Excel
import xlrd df = xlrd.open_workbook(name)
? ? 導入模塊后使用
open_workbook()
函數來讀取指定的一個工作簿對象。這里參數name是Excel文件名字,一般使用的是相對路徑的名字。
2、查看工作簿中所有sheet?
df.sheet_names()
讀取文件,便可得到以列表形式嵌字符串的值。?
3、選擇一個工作表
table=df.sheets()[0] table=df.sheet_by_index(0) table=df.sheet_by_name('name')
第一行:獲取第一個工作表,寫法是根據內置的列表格式來選取的。
第二行:通過索引獲取第一個工作表,這里的索引與
pandas
中DataFrame
的index
索引類似,只不過對象換成了工作表。第三行:通過表的名稱選擇工作表。
4、獲取表格的行數、列數
row=table.nrows col=table.ncols
這里不需要在函數后面加小括號
5、獲取整行和整列的值
table.row_values(num1) table.column_values(num2)
6、通過循環讀取表格的所有行
for i in range(table.nrows): print (table.row_values(i))
7、獲取單元格的值
cell1=table.row(0)[0].value cell1=table.cell(0,0).value cell1=table.col(0)[0].value
- 第一行:獲取單元格值的方式是通過調取指定行數據進行篩選。
- 第二行:是以二維的形式獲取,即(第i行,第j列)形式。
- 第三行:與第一行類似是通過列索引調用。
四、xlwt常用操作
1、新建Excel文件
import xlwt df2 = xlwt.Workbook()
2、新建工作表
table2=df2.add_sheet('name') #name是工作表的名稱
3、寫入數據到指定單元格
table2.write(0,0,'Python') #前兩個參數對應(第i行,第j列),代表的是單元格的位置。第三個參數是要寫的值(可以是字符串、數字)
4、保存文件
df2.save('data2.xls')
PS:xlwt
僅支持.xls
的文件格式輸出。
五、綜合xlrd、xlwt讀寫Excel
?1、讀
import xlrd # 1、打開工作本workbook xlsx = xlrd.open_workbook(r'.\t1.xlsx') # 2、打開需要操作的表sheet table = xlsx.sheet_by_index(0) # table = xlsx.sheet_by_name('t1') # 3、讀取指定單元格的數據 print(table.cell_value(1,1)) print(table.cell(1,1).value) print(table.row(1)[1].value)
2、寫
import xlwt # 1、新建一個工作本 new_workbook = xlwt.Workbook() # 2、為這個工作本中添加一個工作表 worksheet = new_workbook.add_sheet('new_test') # 3、向指定單元格寫入內容 worksheet.write(0,0,'nt') # 4、保存 new_workbook.save('./nt.xls')
原文鏈接:https://blog.csdn.net/m0_63794226/article/details/126276740
相關推薦
- 2022-08-19 redis在windows下啟動# Creating Server TCP listening so
- 2022-10-05 C語言各種符號的使用介紹下篇_C 語言
- 2022-09-23 Pandas中Apply函數加速百倍的技巧分享_python
- 2022-11-25 golang?實現時間滑動窗口的示例代碼_Golang
- 2022-09-25 面向對象和面向過程:兩種程序設計思想的基礎介紹和對比
- 2022-03-20 C++?Qt繪制時鐘界面_C 語言
- 2022-04-24 基于Python制作一個文件去重小工具_python
- 2022-09-02 Oracle11g調整SGA方法詳解_oracle
- 最近更新
-
- 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同步修改后的遠程分支