• xlwt xlrd win32com.client


    win32com 的基本使用方法
    import win32com.client
    
    file_path = r"E:01.xls"
    
    ‘‘‘载入 excel’’’
    xlApp = win32com.client.Dispatch(“Excel.Application”)
    
    ''' 设置是否打开 Excel
    True:Excel 可见
    False:Excel 不可见
    '''
    xlApp.Visible = False
    
    ''' 设置是否显示警告和消息框
    True:显示
    False:不显示
    '''
    xlApp.DisplayAlerts = False
    
    ‘‘‘打开 Excel’’’
    xlwb = xlApp.Workbooks.Open(file_path,False)
    
    获取某个 Sheet 页数据 (参数可以为 Sheet 页名称或下标)
    Sheet 页下标从 1 开始
    sheet_data = xlwb.Worksheets(1)
    
    获取列数
    cols = sheet_data.UsedRange.Columns.Count
    print(“获取数据表格数据:”+str(cols)+“列”)
    
    获取行数数
    rows = sheet_data.UsedRange.Rows.Count
    print(“获取数据表格数据:”+str(rows)+“行”)
    
    获取单元格的值
    value = sheet_data.Cells(2,2).Value
    print(“获取单元格的值:”+str(value))
    
    ‘‘‘写入单元格’’’
    sheet_data.Cells(6,1).Value = “测试填写”
    
    ‘‘‘获取某个区域的数据, 返回为一个二维元组’’’
    range_data = sheet_data.Range(“A1”, “B3”).Value
    print(“获取区域间的数据 A1-B3”)
    print(range_data)
    
    ‘‘‘设置行高’’’
    sheet_data.Rows(1).RowHeight = 28 # 行高
    
    设置列宽为适应列宽
    sheet_data.Columns.AutoFit()
    
    合并单元格
    sheet_data.Range(sheet_data.Cells(7, 1), sheet_data.Cells(7, 2)) .MergeCells = True
    
    设置水平居中
    sheet_data.Cells(1, 5).HorizontalAlignment = 3
    
    设置垂直居中
    sheet_data.Cells(1, 5).VerticalAlignment = 2
    
    ‘‘‘设置单元格格式’’’
    字体大小
    sheet_data.Cells(1, 1).Font.Size = 15
    
    字体颜色
    sheet_data.Cells(1, 1).Font.ColorIndex = 3
    
    是否粗体
    sheet_data.Cells(1, 1).Font.Bold = True
    
    字体类型
    sheet_data.Cells(1, 1).Name = “Arial”
    单元格颜色
    sheet_data.Cells(2, 2).Interior.ColorIndex = 3
    
    单元格字体颜色
    sheet_data.Cells(2,3).Font.Color = 8
    
    设置字体为粗体
    sheet_data.Cells(2,3).Font.Bold = True
    
    设置单元格框线
    sheet_data.Cells(4, 4).BorderAround(1,3)
    
    保存表格
    xlwb.Save()
    
    关闭 Excel
    xlwb.Close()
    xlApp.Quit()
    win32com 的基本使用方法
      1 复制代码
      2 #创建
      3 
      4 #word
      5 w = win32com.client.Dispatch("Word.Application")    
      6 w = win32com.client.DispatchEx("Word.Application")#使用启动独立的进程
      7 
      8 #excel
      9 xlApp = win32com.client.Dispatch("Excel.Application")
     10 
     11 #后台运行, 不显示, 不警告
     12 w.Visible = 0;
     13 w.DisplayAlerts = 0;
     14 
     15 #打开新的文件
     16 
     17 #word
     18 doc = w.Documents.Open(FileName)
     19 #new_doc = w.Documents.Add() #创建新的文档
     20 
     21 #excel
     22 xlBook = xlApp.Workbooks.Open(FileName)
     23 #new_xlBook = xlApp.Workbooks.Add() #创建新的工作簿
     24 
     25 
     26 #插入文字
     27 
     28 #word
     29 myRange = doc.Range(0, 0)
     30 myRange.InsertBefore("hello from Python")
     31 
     32 #excel
     33 
     34 
     35 
     36 #使用样式
     37 wordStyle = myRange.Select()
     38 wordStyle.Style = constants.wdStyleHeading1
     39 
     40 #正文文字替换
     41 w.Selection.Find.ClearFormatting()
     42 w.Selection.Find.Replacement.ClearFormatting()
     43 w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)
     44 
     45 
     46 #表格操作
     47 
     48 #word
     49 doc.Tables[0].Rows[0].Cells[0].Range.Text = "hello world Python"
     50 worddoc.Tables[0].Rows.Add() #增加一行
     51 
     52 #excel
     53 
     54 #获取
     55 _sheet = xlBook.Worksheets(sheet)
     56 _sheet.Cell(row, col).Value
     57 
     58 #设置
     59 _sheet = xlBook.Worksheets(sheet)
     60 _sheet.Cells(row, col).Value = values
     61 
     62 #范围操作
     63 _sheet = xlBook.Worksheets(sheet)
     64 _sheet.Range(_sheet.Cell(row1, col1), _sheet.Cell(row2, col2)).Value
     65 
     66 
     67 #添加图片
     68 
     69 #excel
     70 _sheet = xlBook.Worksheets(sheet)
     71 _sheet.Shapes.AddPicture(picturename, 1, 1, Left, Top, Width, Height)
     72 
     73 
     74 #copy 工作簿
     75 
     76 sheets = xlBook.Worksheets
     77 sheets(1).Copy(None, sheets(1))
     78 
     79 
     80 
     81 #转换为html
     82 
     83 #word
     84 wc = win32com.client.constants
     85 w.ActiveDocument.WebOptions.RelyOnCSS = 1
     86 w.ActiveDocument.WebOptions.OptimizeForBrowser = 1
     87 w.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4
     88 w.ActiveDocument.WebOptions.OrganizeInFolder = 0
     89 w.ActiveDocument.WebOptions.UseLongFileNames = 1
     90 w.ActiveDocument.WebOptions.RelyOnVML = 0
     91 w.ActiveDocument.WebOptions.AllowPNG = 1
     92 w.ActiveDocument.SaveAs(FileName, FileFormat = wc.wdFormatHTML)
     93 
     94 #打印
     95 doc.PrintOut()
     96 
     97 #保存
     98 
     99 
    100 #excel
    101 xlBook.SaveAs(FileName)#另存为
    102 xlBook.Save()
    103 
    104 
    105 #关闭
    106 
    107 #word
    108 #doc.Close()
    109 w.Documents.Close(wc.wdDoNotSaveChanges)
    110 w.Quit()
    111 
    112 
    113 #excel
    114 xlBook.Close(SaveChange = 0)
    115 xlBook.Quit()
    python win32com.client
    python里面的xlrd模块详解(一)
    那我就一下面积个问题对xlrd模块进行学习一下:
    
    1.什么是xlrd模块?
    
    2.为什么使用xlrd模块?
    
    3.怎样使用xlrd模块?
    
    1.什么是xlrd模块?
      ♦python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。
    
    今天就先来说一下xlrd模块:
    
    一、安装xlrd模块
    
      ♦ 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。
    
      ♦或者在cmd窗口  pip install  xlrd
    
    二、使用介绍
    
     1、常用单元格中的数据类型
    
         ♦ 0. empty(空的),1 string(text), 2 number, 3 date, 4 boolean, 5 error, 6 blank(空白表格)
    
     2、导入模块
    
     import xlrd
      3、打开Excel文件读取数据
    
    data = xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个r拜师原生字符。
    
     4、常用的函数
    
           ♦ excel中最重要的方法就是book和sheet的操作
    
          1)获取book中一个工作表
    
    复制代码
    table = data.sheets()[0]          #通过索引顺序获取
    
    table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取
    
    table = data.sheet_by_name(sheet_name)#通过名称获取
    
    以上三个函数都会返回一个xlrd.sheet.Sheet()对象
    
    names = data.sheet_names()    #返回book中所有工作表的名字
    
    data.sheet_loaded(sheet_name or indx)   # 检查某个sheet是否导入完毕
    复制代码
    如:
    
    
    
     
    
            2)行的操作
    
    复制代码
    nrows = table.nrows  #获取该sheet中的有效行数
    
    table.row(rowx)  #返回由该行中所有的单元格对象组成的列表
    
    table.row_slice(rowx)  #返回由该列中所有的单元格对象组成的列表
    
    table.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表
    
    table.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表
    
    table.row_len(rowx) #返回该列的有效单元格长度
    复制代码
    
    
     
    
           3)列(colnum)的操作
    
    复制代码
    ncols = table.ncols   #获取列表的有效列数
    
    table.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
    
    table.col_slice(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
    
    table.col_types(colx, start_rowx=0, end_rowx=None)    #返回由该列中所有单元格的数据类型组成的列表
    
    table.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表
    复制代码
    如:
    
    
    
     
    
          4)单元格的操作  
    
    复制代码
    table.cell(rowx,colx)   #返回单元格对象
    
    table.cell_type(rowx,colx)    #返回单元格中的数据类型
    
    table.cell_value(rowx,colx)   #返回单元格中的数据
    
    table.cell_xf_index(rowx, colx)   # 暂时还没有搞懂
    复制代码
    ♦单元格:单元格是表格中行与列的交叉部分,它是组成表格的最小单位,可拆分或者合并。单个数据的输入和修改都是在单元格中进行的
    
    如:
    
    
    
    注意:注意作用域问题,之前获取的sheet之后,都在获取到这个sheet值后,在进行,行和列以及单元格的操作。
    
     
    ♦ python解决open()函数、xlrd.open_workbook()函数文件名包含中文,sheet名包含中文报错的问题
     问题现象: 
      ♦1、使用open()函数、xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录。 
    
      ♦2、获取sheet时若包含中文,也会报错。
    
    复制代码
    #打开文件
    file = open(filename,'rb')
    
    #打开excel文件
    workbook = xlrd.open_workbook(filename)
    
    #获取sheet
    sheet = workbook.sheet_by_name(sheetname)
    复制代码
    解决方案:
    
      ♦对参数进行转码即可。如:
    
    filename = filename.decode('utf-8')
      ♦也试过unicode函数,不过,在ride中运行时出现了报错,所以不赞成使用。
    
    filename = unicode(filename,'utf-8')
     
    
    2.为什么使用xlrd模块?
      ♦在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。
    
    3.怎样使用xlrd模块?
      ♦我在第二张中单独整理一下:python selenium中Excel数据维护(二)欢迎指正。
    xlrd
    python xlwt写入excel操作
    安装
    
    $ pip install xlwt
    例子:
    
    import xlwt
    # 创建一个workbook 设置编码
    workbook = xlwt.Workbook(encoding = 'utf-8')
    # 创建一个worksheet
    worksheet = workbook.add_sheet('My Worksheet')
    
    # 写入excel
    # 参数对应 行, 列, 值
    worksheet.write(1,0, label = 'this is test')
    
    # 保存
    workbook.save('Excel_test.xls')
    运行后 会在当前目录生成一个Excel_test.xls
    
    import xlwt
    
    workbook = xlwt.Workbook(encoding = 'ascii')
    worksheet = workbook.add_sheet('My Worksheet')
    style = xlwt.XFStyle() # 初始化样式
    font = xlwt.Font() # 为样式创建字体
    font.name = 'Times New Roman' 
    font.bold = True # 黑体
    font.underline = True # 下划线
    font.italic = True # 斜体字
    style.font = font # 设定样式
    worksheet.write(0, 0, 'Unformatted value') # 不带样式的写入
    
    worksheet.write(1, 0, 'Formatted value', style) # 带样式的写入
    
    workbook.save('formatting.xls') # 保存文件
    效果:
    
    
     
    设置单元格宽度:
    
    import xlwt
    
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    worksheet.write(0, 0,'My Cell Contents')
    
    # 设置单元格宽度
    worksheet.col(0).width = 3333
    workbook.save('cell_width.xls')
    输入一个日期到单元格:
    
    import xlwt
    import datetime
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    style = xlwt.XFStyle()
    style.num_format_str = 'M/D/YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
    worksheet.write(0, 0, datetime.datetime.now(), style)
    workbook.save('Excel_Workbook.xls')
    向单元格添加一个公式:
    
    import xlwt
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    worksheet.write(0, 0, 5) # Outputs 5
    worksheet.write(0, 1, 2) # Outputs 2
    worksheet.write(1, 0, xlwt.Formula('A1*B1')) # Should output "10" (A1[5] * A2[2])
    worksheet.write(1, 1, xlwt.Formula('SUM(A1,B1)')) # Should output "7" (A1[5] + A2[2])
    workbook.save('Excel_Workbook.xls')
    向单元格添加一个超链接:
    
    import xlwt
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    worksheet.write(0, 0, xlwt.Formula('HYPERLINK("http://www.google.com";"Google")')) # Outputs the text "Google" linking to http://www.google.com
    workbook.save('Excel_Workbook.xls')
    合并列和行:
    
    import xlwt
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    worksheet.write_merge(0, 0, 0, 3, 'First Merge') # Merges row 0's columns 0 through 3.
    font = xlwt.Font() # Create Font
    font.bold = True # Set font to Bold
    style = xlwt.XFStyle() # Create Style
    style.font = font # Add Bold Font to Style
    worksheet.write_merge(1, 2, 0, 3, 'Second Merge', style) # Merges row 1 through 2's columns 0 through 3.
    workbook.save('Excel_Workbook.xls')
    设置单元格内容的对其方式:
    
    import xlwt
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    alignment = xlwt.Alignment() # Create Alignment
    alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
    alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
    style = xlwt.XFStyle() # Create Style
    style.alignment = alignment # Add Alignment to Style
    worksheet.write(0, 0, 'Cell Contents', style)
    workbook.save('Excel_Workbook.xls')
    为单元格议添加边框:
    
    # Please note: While I was able to find these constants within the source code, on my system (using LibreOffice,) I was only presented with a solid line, varying from thin to thick; no dotted or dashed lines.
    import xlwt
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    borders = xlwt.Borders() # Create Borders
    borders.left = xlwt.Borders.DASHED 
        DASHED虚线
        NO_LINE没有
        THIN实线
        
    # May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
    borders.right = xlwt.Borders.DASHED
    borders.top = xlwt.Borders.DASHED
    borders.bottom = xlwt.Borders.DASHED
    borders.left_colour = 0x40
    borders.right_colour = 0x40
    borders.top_colour = 0x40
    borders.bottom_colour = 0x40
    style = xlwt.XFStyle() # Create Style
    style.borders = borders # Add Borders to Style
    worksheet.write(0, 0, 'Cell Contents', style)
    workbook.save('Excel_Workbook.xls')
    为单元格设置背景色:
    
    import xlwt
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    pattern = xlwt.Pattern() # Create the Pattern
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
    pattern.pattern_fore_colour = 5 # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
    style = xlwt.XFStyle() # Create the Pattern
    style.pattern = pattern # Add Pattern to Style
    worksheet.write(0, 0, 'Cell Contents', style)
    workbook.save('Excel_Workbook.xls')
    xlwt
  • 相关阅读:
    寒假day08
    操作系统(一)操作系统的目标和作用
    数据结构排序算法稳定性总结——写给自己看
    网络请求生命周期
    PHP 不同类型之间的松散和严格比较
    php配置可被设定范围
    laravel5.7 前后端分离开发 实现基于API请求的token认证
    laravel 自动加载 自定义的文件/辅助函数
    laravel5.7 migrate 时报错 Specified key was too long error 解决方案
    PHP 命名空间
  • 原文地址:https://www.cnblogs.com/wangbin2020/p/13691286.html
Copyright © 2020-2023  润新知