xlwt xlrd win32com.client
win32com 的基本使用方法 import win32com.client file_path = r"E:\001.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()
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里面的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数据维护(二)欢迎指正。
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')