国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python讀取Excel的方法實例分析

2020-01-04 18:05:08
字體:
供稿:網(wǎng)友

這篇文章主要介紹了Python讀取Excel的方法,實例分析了Python操作Excel文件的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了Python讀取Excel的方法。分享給大家供大家參考。具體如下:

今天需要從一個Excel文檔(.xls)中導(dǎo)數(shù)據(jù)到數(shù)據(jù)庫的某表,開始是手工一行行輸?shù)摹:髞硐氩荒芤恢边@樣,就用Python寫了下面的代碼,可以很方便應(yīng)對這種場景。比如利用我封裝的這些方法可以很方便地生成導(dǎo)入數(shù)據(jù)的SQL。 當(dāng)然熟悉Excel編程的同學(xué)還可以直接用VBA寫個腳本生成插入數(shù)據(jù)的SQL。

還可以將.xls文件改為.csv文件,然后通過SQLyog或者Navicat等工具導(dǎo)入進(jìn)來,但是不能細(xì)粒度控制(比如不滿足某些條件的某些數(shù)據(jù)不需要導(dǎo)入,而用程序就能更精細(xì)地控制了;又比如重復(fù)數(shù)據(jù)不能重復(fù)導(dǎo)入;還有比如待導(dǎo)入的Excel表格和數(shù)據(jù)庫中的表的列不完全一致) 。

我的Python版本是3.0,需要去下載xlrd 3: http://pypi.python.org/pypi/xlrd3/ 然后通過setup.py install命令安裝即可

 

 
  1. import xlrd3 
  2. ''
  3. author: jxqlove? 
  4. 本代碼主要封裝了幾個操作Excel數(shù)據(jù)的方法 
  5. ''
  6. '''  
  7. 獲取行視圖 
  8. 根據(jù)Sheet序號獲取該Sheet包含的所有行,返回值類似[ ['a''b''c'], ['1''2''3'] ] 
  9. sheetIndex指示sheet的索引,0表示第一個sheet,依次類推 
  10. xlsFilePath是Excel文件的相對或者絕對路徑 
  11. ''
  12. def getAllRowsBySheetIndex(sheetIndex, xlsFilePath): 
  13. workBook = xlrd3.open_workbook(xlsFilePath) 
  14. table = workBook.sheets()[sheetIndex] 
  15. rows = [] 
  16. rowNum = table.nrows # 總共行數(shù) 
  17. rowList = table.row_values 
  18. for i in range(rowNum): 
  19. rows.append(rowList(i)) # 等價于rows.append(i, rowLists(i)) 
  20. return rows 
  21. ''
  22. 獲取某個Sheet的指定序號的行 
  23. sheetIndex從0開始 
  24. rowIndex從0開始 
  25. ''
  26. def getRow(sheetIndex, rowIndex, xlsFilePath): 
  27. rows = getAllRowsBySheetIndex(sheetIndex, xlsFilePath) 
  28. return rows[rowIndex] 
  29. '''  
  30. 獲取列視圖 
  31. 根據(jù)Sheet序號獲取該Sheet包含的所有列,返回值類似[ ['a''b''c'], ['1''2''3'] ] 
  32. sheetIndex指示sheet的索引,0表示第一個sheet,依次類推 
  33. xlsFilePath是Excel文件的相對或者絕對路徑 
  34. ''
  35. def getAllColsBySheetIndex(sheetIndex, xlsFilePath): 
  36. workBook = xlrd3.open_workbook(xlsFilePath) 
  37. table = workBook.sheets()[sheetIndex] 
  38. cols = [] 
  39. colNum = table.ncols # 總共列數(shù) 
  40. colList = table.col_values 
  41. for i in range(colNum): 
  42. cols.append(colList(i)) 
  43. return cols 
  44. ''
  45. 獲取某個Sheet的指定序號的列 
  46. sheetIndex從0開始 
  47. colIndex從0開始 
  48. ''
  49. def getCol(sheetIndex, colIndex, xlsFilePath): 
  50. cols = getAllColsBySheetIndex(sheetIndex, xlsFilePath) 
  51. return cols[colIndex] 
  52. ''
  53. 獲取指定sheet的指定行列的單元格中的值 
  54. ''
  55. def getCellValue(sheetIndex, rowIndex, colIndex, xlsFilePath): 
  56. workBook = xlrd3.open_workbook(xlsFilePath) 
  57. table = workBook.sheets()[sheetIndex] 
  58. return table.cell(rowIndex, colIndex).value # 或者table.row(0)[0].value或者table.col(0)[0].value 
  59. if __name__=='__main__'
  60. rowsInFirstSheet = getAllRowsBySheetIndex(0, './產(chǎn)品.xls'
  61. print(rowsInFirstSheet) 
  62. colsInFirstSheet = getAllColsBySheetIndex(0, './產(chǎn)品.xls'
  63. print(colsInFirstSheet) 
  64. print(getRow(0, 0, './產(chǎn)品.xls')) 
  65. # 獲取第一個sheet第一行的數(shù)據(jù) 
  66. print(getCol(0, 0, './產(chǎn)品.xls')) 
  67. # 獲取第一個sheet第一列的數(shù)據(jù) 
  68. print(getCellValue(0, 3, 2, './產(chǎn)品.xls')) 
  69. # 獲取第一個sheet第四行第二列的單元格的值 

希望本文所述對大家的Python程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 遂川县| 淮阳县| 公主岭市| 修武县| 舞阳县| 镇宁| 广饶县| 河源市| 沙坪坝区| 东方市| 平武县| 邯郸市| 崇州市| 钟祥市| 读书| 武山县| 河池市| 庆元县| 晋城| 奉贤区| 乐清市| 图片| 潮州市| 宿州市| 台州市| 双峰县| 吉木乃县| 温宿县| 门源| 财经| 道真| 屏山县| 天峻县| 乐昌市| 繁峙县| 涞水县| 梧州市| 龙井市| 姚安县| 大足县| 广元市|