熱線電話:13121318867

登錄
首頁精彩閱讀python操作Excel文件讀取和寫入
python操作Excel文件讀取和寫入
2018-07-22
收藏
一、xlrd和xlwt的安裝

xlrd和xlwt是python的第三方庫,所以是需要自己安裝的,可以在python的官網https://pypi.python.org/pypi下載該模塊來安裝,也可以通過其他手段,比如easy_install或者pip,我在Win7環境下已經安裝好pip,所以就在命令符窗口中用如下命令來安裝xlrd和xlwt。

pip install xlrd

pip install xlwt

運行過程如下:


二、xlrd使用介紹

   1、導入模塊
    import xlrd 
  2、打開Excel文件讀取數據
    data = xlrd.open_workbook('excelFile.xls')
  3、使用技巧
    獲取一個工作表
    table = data.sheets()[0]      #通過索引順序獲取
    table = data.sheet_by_index(0) #通過索引順序獲取

table = data.sheet_by_name(u'Sheet1')#通過名稱獲取


    獲取整行和整列的值(數組)  
    table.row_values(i)
    table.col_values(i)
 
    獲取行數和列數  
    nrows = table.nrows 
    ncols = table.ncols
    
    循環行列表數據 
    for i in range(nrows):
        print table.row_values(i)
 
    單元格
    cell_A1 = table.cell(0,0).value
    cell_C4 = table.cell(2,3).value
 
    使用行列索引
    cell_A1 = table.row(0)[0].value
    cell_A2 = table.col(1)[0].value
 
    簡單的寫入
    row = 0
    col = 0
 
    # 類型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
    ctype = 1 value = '單元格的值'
    xf = 0 # 擴展的格式化
    table.put_cell(row, col, ctype, value, xf)
    table.cell(0,0)  #單元格的值'
    table.cell(0,0).value #單元格的值'

用例如下:
  1. # _*_ coding:utf-8 _*_

  2. #----------------------------------------------------------------------------
  3. # import modules
  4. #----------------------------------------------------------------------------
  5. importos
  6. importxlrd
  7. fromdatetimeimportdate,datetime

  8. #打開Excel文件
  9. workbook = xlrd.open_workbook('09-10.11-38-12-HTTP-GOOD-1-Lte1sDataStat_Charts.xlsx')

  10. #輸出Excel文件中所有sheet的名字
  11. printworkbook.sheet_names()

  12. #根據sheet索引或者名稱獲取sheet內容
  13. Data_sheet = workbook.sheets()[0]
  14. CdfData_sheet = workbook.sheet_by_index(1)
  15. Charts_sheet = workbook.sheet_by_name(u'Charts')

  16. #獲取sheet名稱、行數和列數
  17. printData_sheet.name, Data_sheet.nrows, Data_sheet.ncols,\
  18. CdfData_sheet.name, CdfData_sheet.nrows, CdfData_sheet.ncols,\
  19. Charts_sheet.name, Charts_sheet.nrows, Charts_sheet.ncols

  20. #獲取整行和整列的值(列表)
  21. rows = Data_sheet.row_values(0)#獲取第一行內容
  22. cols = Data_sheet.col_values(1)#獲取第二列內容
  23. #print rows
  24. #print cols

  25. #獲取單元格內容
  26. cell_A1 = Data_sheet.cell(0,0).value
  27. cell_C1 = Data_sheet.cell(0,2).value
  28. cell_B1 = Data_sheet.row(0)[1].value
  29. cell_D2 = Data_sheet.col(3)[1].value
  30. printcell_A1, cell_B1, cell_C1, cell_D2

  31. #獲取單元格內容的數據類型
  32. #ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
  33. print'cell(0,0)數據類型:', Data_sheet.cell(0,0).ctype
  34. print'cell(1,0)數據類型:', Data_sheet.cell(1,0).ctype
  35. print'cell(1,1)數據類型:', Data_sheet.cell(1,1).ctype
  36. print'cell(1,2)數據類型:', Data_sheet.cell(1,2).ctype

  37. #獲取單元格內容為日期的數據
  38. date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)
  39. printdate_value
  40. print'%d:%d:%d'%(date_value[3:])

  41. d = {'11:25:59':[1,2,3],'11:26:00':[2,3,4],'11:26:01':[3,4,5]}
  42. printd['11:25:59']
  43. printd['11:26:00']
  44. printd['11:26:01']

  45. printd['11:25:59'][0]
  46. printd['11:26:00'][0]
  47. printd['11:26:01'][0]

三、xlwt使用介紹

Xlwt簡介:
功能:用于生成97/2000/XP/2003xls文件。
Python版本:Python2.3 to 2.7
當前版本:0.7.5
平臺:跨平臺
     
相關模塊:
csv       python標準模塊。推薦。
xlrd       讀取 .xls, .xlsx 文件。
xlutils     xlrd和xlwt的集合。
openpyxl 讀寫 Excel 2007 xlsx/xlsm文件 。純python,效率不高。
Matplotlib    2D作圖模塊,適用于基于excel作圖。
Pywin32   python windows擴展 ,不跨平臺,通過COM口連接excel。
Pyxll      在excel中使用python替代vbs。http://www.pyxll.com/。類似模塊有pyinex。Python For Excel http://www.opentradingsystem.com/PythonForExcel/main.html
XlsxWriter    寫xlsx文件。純python。
 
快速入門
下面例子,創建一個名為mini.xls的文件,它有一個空sheet:'xlwt was here'。代碼見mini.py。
fromxlwt import *
w =Workbook()
ws = w.add_sheet('xlwtwas here')
w.save('mini.xls') 

Workbook類初始化時有encoding和style_compression參數。

encoding,設置字符編碼,一般要這樣設置:w = Workbook(encoding='utf-8'),就可以在excel中輸出中文了。默認是ascii。當然要記得在文件頭部添加:

# -*- coding: utf-8-*-

style_compression 表示是否壓縮,不常用。
Workbook 還有一些屬性:
Owner 設置文檔所有者。
country_code: 國家碼
wnd_protect: 窗口保護
obj_protect: 對象保護
Protect: 保護
backup_on_save: 保存時備份
Hpos: 橫坐標
Vpos: 縱坐標
Width: 寬度
Height: 高度
active_sheet: 活動sheet
tab_width: tab寬度
wnd_visible: 窗口是否可見
wnd_mini: 窗口最小化
hscroll_visible: 橫向滾動條是否可見。
vscroll_visible: 縱向滾動條是否可見。
tabs_visible: tab是否可見。
dates_1904: 是否使用1904日期系統
use_cell_values: 單元格的值
default_style: 默認樣式
colour_RGB: 顏色

方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。

用例如下:


  1. # _*_ coding:utf-8 _*_

  2. #----------------------------------------------------------------------------
  3. # import modules
  4. #----------------------------------------------------------------------------
  5. importos
  6. importxlwt


  7. defset_style(name, height, bold = False):
  8. style = xlwt.XFStyle()#初始化樣式

  9. font = xlwt.Font()#為樣式創建字體
  10. font.name = name
  11. font.bold = bold
  12. font.color_index =4
  13. font.height = height

  14. style.font = font
  15. returnstyle


  16. defwrite_excel():
  17. #創建工作簿
  18. workbook = xlwt.Workbook(encoding='utf-8')
  19. #創建sheet
  20. data_sheet = workbook.add_sheet('demo')
  21. row0 = [u'字段名稱',u'大致時段','CRNTI','CELL-ID']
  22. row1 = [u'測試','15:50:33-15:52:14',22706,4190202]

  23. #生成第一行和第二行
  24. foriinrange(len(row0)):
  25. data_sheet.write(0, i, row0[i], set_style('Times New Roman',220,True))
  26. data_sheet.write(1, i, row1[i], set_style('Times New Roman',220,True))

  27. #保存文件
  28. workbook.save('demo.xls')


  29. if__name__ =='__main__':
  30. write_excel()
  31. printu'創建demo.xlsx文件成功'


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢