python自动化办公(持续更新)
Excelxlrd与xlwt的基本操作(读写)#xlrd读excel:import xlrdbook = xlrd.open_workbook('data.xlsx')sheet1 = book.sheets()[0]nrows = sheet1.nrowsprint('表格总行数',nrows)cell_3_3 = sheet1.cell(2,2).valueprint('第3行第3列的单元格的
·
Excel
xlrd与xlwt的基本操作(读写)
#xlrd读excel:
import xlrd
book = xlrd.open_workbook('data.xlsx')
sheet1 = book.sheets()[0]
nrows = sheet1.nrows
print('表格总行数',nrows)
cell_3_3 = sheet1.cell(2,2).value
print('第3行第3列的单元格的值:',cell_3_3)
ncols = sheet1.ncols
print('表格总列数',ncols)
row3_values = sheet1.row_values(2)
print('第3行值',row3_values)
col3_values = sheet1.col_values(2)
print('第3列值',col3_values)
#xlwt写excel
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('test')
worksheet.col(0).width = 4444 #第一列宽度
worksheet.write(0,0,'A1data')
worksheet.write_merge(0, 1, 6, 7,'源码') #合并第1行到第二行的 第7和8列。后面是合并后写什么内容,如果合并本行的,前两个参数就写一样的
workbook.save('excelwrite.xls')
xlrd实现pandas功能(停更)
import xlrd
excel = xlrd.open_workbook("2020-06-10 已配送.xls")
sheet = excel.sheet_by_index(0) #通过索引读取sheet对象,第一个sheet的索引为"0"
row_the_first = sheet.row_values(0) #读取第1行的所有数据,并以列表的形式存储到row_3中
all_cell_data={}
for i in range(len(row_the_first)): # 第几列
one_col_data=sheet.col_values(i)[1:] # 没有信息的会变成''
all_cell_data[row_the_first[i]]=one_col_data
print(all_cell_data)
def read_excel(path):
import xlrd
excel = xlrd.open_workbook(path)
sheet = excel.sheet_by_index(0) # 通过索引读取sheet对象,第一个sheet的索引为"0"
row_the_first = sheet.row_values(0) # 读取第1行的所有数据,并以列表的形式存储到row_3中
all_cell_data = {}
for i in range(len(row_the_first)): # 第几列
one_col_data = sheet.col_values(i)[1:] # 没有信息的会变成''
all_cell_data[row_the_first[i]] = one_col_data
return all_cell_data
xlrd操作
import xlrd
excel = xlrd.open_workbook("data.xls")
sheet = excel.sheet_by_index(0) #通过索引读取sheet对象,第一个sheet的索引为"0"
row_3 = sheet.row_values(2) #读取第3行的所有数据,并以列表的形式存储到row_3中
col_3 = sheet.col_values(2) #读取第3列的所有数据,并以列表list的形式存储到col_3中
cell_12_7 = sheet.cell_value(11,6) #读取第12行第7列的数据,并存储到cell_12_7中
cell_11_11 = sheet.cell(10,10).value #读取第11行第11列的数据,并存储到cell_11_11中
cell_7_8 = sheet.row(6)[7].value #读取第7行第8列的数据
cell_8_7 = sheet.cel(7)[6].value #读取第8列第7行的数据
num_rows = sheet.nrows #读取sheet的总行数
num_cols = sheet.ncols #读取sheet的总列数
xlutils修改一个已经存在的excel文档
import xlwt #导入xlwt模块
import xlrd #导入xlrd模块
from xlutils.copy import copy #导入import模块的copy函数,接下来就可以直接使用函数copy了。
fileName = "E:\\4.xls"
sheetName = "sheet1"
styleBoldRed = xlwt.easyxf('font: color-index red, bold on') #设置字体,颜色为红色,加粗
oldWb = xlrd.open_workbook(fileName, formatting_info=True) #使用xlrd.open_workbook函数打开文件,formatting_info=True表示保留该文件的格式
newWb = copy(oldWb) #通过copy函数把oldWb copy到newWb,然后通过编辑newWb来实现编辑已经存在的文件。
newWs = newWb.get_sheet(0) #读取第一个sheet
newWs.write(4, 0, "value1",styleBoldRed) #第5行第1列写入值“value1”,格式采用styleBoldRed。
newWs.write(4, 1, "value2",styleBoldRed) #第5行第2列写入值“value2”
newWs.write(4, 2, "value3",styleBoldRed) #第5行第3列写入值“value3”
newWb.save(fileName) #文件保存为"E:\\4.xls"
xlwt详细操作
import os,xlwt,datetime #导入模块
data =xlwt.Workbook() #新建一个Workbook
sheet = data.add_sheet(u"sheet") #新建一个sheet,名称为'sheet'
style1 = xlwt.XFStyle() #创建格式style1
style2 = xlwt.XFStyle()
style3 = xlwt.XFStyle()
#设置字体格式
font1 = xlwt.Font() #创建font1
font1.name = 'Times New Roman' #字体为'Times New Roman'
font1.bold = True #加粗
font1.colour_index = 2 #字体颜色为红色,0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan
font1.underline = xlwt.Font.UNDERLINE_DOUBLE #下划线类型,UNDERLINE_DOUBLE 代表双下划线,另外还有 UNDERLINE_NONE, UNDERLINE_SINGLE, UNDERLINE_SINGLE_ACC, UNDERLINE_DOUBLE, UNDERLINE_DOUBLE_ACC
font1.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT #设置上标
font1.family = xlwt.Font.FAMILY_ROMAN
font1.height = 0x190 #0x190是16进制,换成10进制为400,然后除以20,就得到字体的大小为20
style1.font = font1 #将创建的font1字体格式应用到style1上
font2 = xlwt.Font() #创建font2
font2.name = "Algerian" #字体为'Algerian'
font2.colour_index = 3 #字体颜色为绿色
font2.italic = True #斜体
font2.struck_out = True #删除线
font2.height = 0x258 #字体大小为30
style2.font = font2 #将创建的font2字体格式应用到style2上
#设置列宽
sheet.col(0).width = 6000
sheet.col(1).width = 12000
sheet.set_col_default_width(2)
#设置单元格对齐方式
alignment = xlwt.Alignment() #创建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
style3.alignment = alignment #应用alignment到style3上
#插入时间
style3.num_format_str = 'YYYY-MM-DD HH:MM:SS' #设置时间格式
sheet.write(1,1,datetime.datetime.now(),style3) #在第2行第2列插入当前时间,格式为style3
#设置单元格背景颜色
pattern_yellow = xlwt.Pattern() #创建pattern_yellow
pattern_yellow.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式为全部填充
pattern_yellow.pattern_fore_colour = 5 #设置填充颜色为yellow黄色
style1.pattern = pattern_yellow #把设置的pattern应用到style3上
pattern_red = xlwt.Pattern() #创建pattern_red
pattern_red.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式为全部填充
pattern_red.pattern_fore_colour = 2 #设置填充颜色为red红色
style2.pattern = pattern_red #把设置的pattern应用到style4上
#设置单元格边框
borders = xlwt.Borders() #创建borders
borders.left = xlwt.Borders.DASHED #设置左边框的类型为虚线 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.THIN #设置右边框的类型为细线
borders.top = xlwt.Borders.DOTTED #设置上边框的类型为打点的
borders.bottom = xlwt.Borders.THICK #设置底部边框类型为粗线
borders.left_colour = 0x10 #设置左边框线条颜色
borders.right_colour = 0x20
borders.top_colour = 0x30
borders.bottom_colour = 0x40
style1.borders = borders #将borders应用到style1上
style2.borders = borders #将borders应用到style2上
sheet.write(3, 0, 'HuZhangdong', style1) #在第4行第1列写入'HuZhangdong',格式引用style1
sheet.write(4, 0, 'YinMengran' , style2) #在第5行第1列写入'YinMengran',格式引用style2
data.save(u'3.xls') #保存到 e:\\3.xls
使用openpyxl读写(大文件可用)
import openpyxl#写大文件使用
def readExel(self):
filename = r'D:\work\Excel_txtProcesss\new-微博-合并\58.xlsx'
inwb = openpyxl.load_workbook(filename) # 读文件
sheetnames = inwb.get_sheet_names() # 获取读文件中所有的sheet,通过名字的方式
ws = inwb.get_sheet_by_name(sheetnames[0]) # 获取第一个sheet内容
# 获取sheet的最大行数和列数
rows = ws.max_row
cols = ws.max_column
for r in range(1,rows):
for c in range(1,cols):
print(ws.cell(r,c).value)
if r==10:
break
def writeExcel(self):
outwb = openpyxl.Workbook() # 打开一个将写的文件
wb2 = openpyxl.load_workbook(path) # 打开现有的excel
outws = outwb.create_sheet(index=0) # 在将写的文件创建sheet
for row in range(1,70000):
for col in range(1,4):
outws.cell(row, col).value = row*2 # 写文件
print(row)
saveExcel = "D:\\work\\Excel_txtProcesss\\test.xlsx"
outwb.save(saveExcel) # 一定要记得保存
解决读取的不同类型数据会变形的问题
'''
https://www.cnblogs.com/yuanfang0903/p/11596804.html
'''
xlwt与openpyxl读写的模板
import xlrd
import openpyxl
# 创建表格
workbook = openpyxl.Workbook() # 打开一个将写的文件,可以是本地文件
worksheet = workbook.create_sheet(index=0) # 在将写的文件创建sheet
worksheet.cell(1, 1).value = '标题'
worksheet.cell(1, 2).value = '发文时间'
worksheet.cell(1, 3).value = '发文主体'
worksheet.cell(1, 4).value = '新闻正文'
row = 2
book = xlrd.open_workbook('address')#打开表格
sheet1 = book.sheets()[0]
nrows = sheet1.nrows
for nrow in range( nrows):
#开始写
worksheet.cell(row, 1).value = sheet1.cell(nrow, 0).value
worksheet.cell(row, 2).value = sheet1.cell(nrow, 1).value
worksheet.cell(row, 3).value = sheet1.cell(nrow, 2).value
worksheet.cell(row, 4).value = sheet1.cell(nrow, 3).value
row += 1
workbook.save('name.xlsx')
Word
常使用库:python-docx
将本地图片存储到word文档
想要利用Python来操作word文档可以使用docx模块.
安装: pip install python-docx
from docx import Document
from docx.shared import Inches
string = '文字内容'
images = '1.jpg' # 保存在本地的图片
doc = Document() # doc对象
doc.add_paragraph(string) # 添加文字
doc.add_picture(images, width=Inches(2)) # 添加图, 设置宽度
doc.save('word文档.docx') # 保存路径
控制鼠标键盘
'''
https://blog.csdn.net/m0_46521785/article/details/106339368
'''
更多推荐
已为社区贡献2条内容
所有评论(0)