zoukankan      html  css  js  c++  java
  • python 读写excel,基于win32com实现

     1 #注意,初始化 pip install pypiwin32
     2 #如果是离线,则需要到pypiwin32官网下载文件,放入Python安装目录的Script目录下,再执行pip install pypiwin32
     3 #!/usr/bin/python
     4 import os
     5 from win32com import client
     6 
     7 pwd = os.getcwd()
     8 excelApp = client.Dispatch("Excel.Application")
     9 excelApp.Visible = False
    10 
    11 class Employee:
    12     '对象说明'
    13     # 参数1 
    14     param1=''
    15         #定义对象构造函数
    16     def __init__(self,list):
    17         self.param1 = list[0]
    18 
    19 #nrows_1 = info_1.Rows.Count
    20 #ncols_1 = info_1.Columns.Count
    21 
    22 print ("Hello, Python!")
    23 
    24 #打开excel文件
    25 def openExcel(filePath):
    26  excelBook = excelApp.Workbooks.Open(filePath)
    27  return excelBook
    28 #选择excel的Sheet
    29 def openSheet(excelBook,sheetIndex):
    30  excelSheet = excelBook.Worksheets(sheetIndex)
    31  info = excelSheet.UsedRange
    32  nrows = info.Rows.Count  # sheet1行数
    33  ncols = info.Columns.Count  # sheet1列数
    34  print("rows all:",nrows)
    35  print("column all:",ncols)
    36  return excelSheet
    37 #读取excel Sheet中的内容
    38 def readSheetDatas(excelSheet,startRow,endRow,startColumn,endColumn):
    39  list = []
    40  while(startRow <= endRow):
    41   columbList = []
    42   while(startColumn <= endColumn):
    43    columbList.append(excelSheet.Cells(startRow,startColumn).Value)
    44    print("row:",startRow,",column:",startColumn,",value:",excelSheet.Cells(startRow,startColumn).Value)
    45    startColumn += 1
    46 #将内容换成对象进行保存
    47   emp = Employee(columbList)
    48   list.append(emp)
    49   startRow += 1
    50   startColumn = 1
    51  return list
    52 #关闭exel
    53 def closeExcel(excelBook):
    54  excelBook.Close(True)
    55  return
    56 #对excel的sheet进行赋值
    57 def setValue(excelSheet,rowIndex,columnIndex,value):
    58  excelSheet.Cells(rowIndex, columnIndex).Value = value
    59  return
    60 #excel 另存,直接存则是 excelBook.Save()
    61 def saveAsFile(excelBook,filePath):
    62  try:
    63   excelBook.SaveAs(filePath)
    64  except:
    65   closeExcel(excelBook)
    66  else:
    67   closeExcel(excelBook)
    68  return
    69  
    70 excelBook = openExcel("E:/test.xlsx")
    71 
    72 excelSheet = openSheet(excelBook,1)
    73 # read datas
    74 list = readSheetDatas(excelSheet,4,18,1,14)
    75 
    76 for emp in list :
    77   print("参数1:",int(emp.param1))
    78 #如果是float或者double,比如excel显示的7,而获取的时候为7.0就需要类型强制转换
    79  #转换为string类型
    80   tmp = "参数1:"+str(int(emp.param1))
    81   print("tmp:",tmp)
    82   #保存地址
    83   #pwd 类似于 linux的指令,为当前执行python文件的路径
    84   savePath = pwd + "\test\1.xlsx"
    85   saveAsFile(excelBookWrite,savePath)
    86   print("cycle for obj...")
    87 print("cycle for end...")
    88 
    89 
    90 
    91 #close table
    92 closeExcel(excelBook)
    93 
    94 #close excel file
    95 excelApp.Quit()
  • 相关阅读:
    把J2ME JAVA 手機軟體轉成EXE檔的工具 [小糊涂的灵感]
    java game 小尺寸设计 [小糊涂的灵感]
    手机游戏开发综述(转载)[小糊涂的灵感]
    (Nokia开发包安装的过程)[小糊涂的灵感]
    Bobber Tec授权3D游戏开发引擎了。[小糊涂的灵感]
    Game features List Template:[小糊涂的灵感]
    GameCanvas快速开发吧.[小糊涂的灵感]
    手机flash技术的初步介绍,(上次飞思的来北京聊了一下)[小糊涂的灵感]
    五子棋判断输赢的算法描述.[小糊涂的灵感]
    NRF51822之GPIOTE使用
  • 原文地址:https://www.cnblogs.com/zf-crazy/p/14200380.html
Copyright © 2011-2022 走看看