python操作excel中遇到的錯誤

2021-08-19 21:06:24 字數 1786 閱讀 3578

一、

permissionerror: [errno 13] permission denied: 'f:\\lp_test\\besttest\\auto_test\\homework\\syz_automatic_code\\day7\\writing\\d_product.xls'

原因:檔案被開啟所以不能操作

解決方法:關閉開啟的檔案

二、indexerror

1.indexerror: list index out of range

原因:建立sheet頁為寫成了get_sheet(0),

解決方法:建立sheet頁應該使用addd_sheet(),即new_sheet = new_workbook.add_sheet('sheetname')

2.  sheet.cell(0,0)

file "d:\installed\python3.6.4\lib\site-packages\xlrd\sheet.py", line 408, in cell

self._cell_types[rowx][colx],

indexerror: list index out of range

原因:開啟的sheet頁為空,因為cell()函式中引用了rowx及colx的下標,所以導致下標越界

3.    

sheetname = sheetname.decode(self.encoding)

attributeerror: 'int' object has no attribute 'decode'

原因:add_sheet()方法中寫的是0,

解決方法:add_sheet()中應該是乙個字串,即sheet頁的名字如:new_sheet = new_workbook.add_sheet('sheet1')

4.呼叫del_unrecongnizable_characters_row只儲存了最後一行的資料

原因:初始化存放所有行的列表rows_list=放在了for迴圈裡面,每迴圈一次都會將list清空,所以導致rows_list中儲存了最後一行的資料

解決方法:將rows_list=放在for迴圈的外面

5.exception: attempt to overwrite cell: sheetname='sheet1' rowx=0 colx=0

原因:以下**寫在了j(j代表列)迴圈當中導致單元格重寫

for k in old_sheet.row_values(i):

print(k)

new_sheet.write(i,j,k)

解決方法:刪除for k in 的迴圈,將new_sheet.write(i,j,k)改為  new_sheet.write(i,j,old_sheet.row_values(i)[j])作為for j in range(old_sheet.ncols+1) 列迴圈的體

6.sheet = book.sheet_by_name('sheet2') #根據名字獲取sheet頁資料

file "d:\installed\python3.6.4\lib\site-packages\xlrd\book.py", line 472, in sheet_by_name

raise xlrderror('no sheet named <%r>' % sheet_name)

xlrd.biffh.xlrderror: no sheet named <'sheet2'>

原因:自動新增的sheet頁的名字首字母是大寫的s,book.sheet_by_name()方法區分大小寫

解決方法:將名字與sheet頁的名字完全一致可以了

7.

Python 操作Excel檔案

from openpyxl import load workbook 開啟excel檔案 wb load workbook test.xlsx 定位第乙個sheet sheet wb sheet1 獲取第1行第1列的單元格的值 print 第1行第1列的單元格的值 format sheet.cell...

初學echarts的excel資料匯入遇到的小問題

1,單引號宣告的字串中如果有轉義符 比如乙個路徑中的斜槓 這其實就是當作斜槓處理,不是轉義字元。但是當你在下文又和雙引號宣告的字串鏈結時,就會導致問題,出現路徑不對情況。2,在定義sheetname的時候要在最後加乙個 號。3,同乙個script快內的函式呼叫順序與宣告的順序沒有要求,但是如果兩個函...

python對excel的操作

一 安裝xlrd模組 二 使用介紹 1 匯入模組 import xlrd 2 開啟excel檔案讀取資料 data xlrd.open workbook excelfile.xls 3 使用技巧 獲取乙個工作表 table data.sheets 0 通過索引順序獲取 table data.shee...