python3 excel基本操作及格式设置
#encoding=utf-8
'''
excel基本操作整理
'''
#openpyxl 版本2.5.4
from openpyxl import *
import datetime as dt
from datetime import datetime as dtt #新建create_sheet、copy_worksheet wb=Workbook()
wb.create_sheet('新创建sheet') ws=wb.active
print(ws.title)
ws.title='测试用例' ws1=wb.copy_worksheet(ws)
ws1.title='测试步骤'
print(ws1.title)
ws1.sheet_properties.tabColor='FF3030' #设置sheet标签颜色 ws2=wb.copy_worksheet(ws1)
ws2.title='测试数据' #新建sheet,设置了位置2
wb.create_sheet('第三个位置sheet',2) #sheet写入数据 ws['A2']='大家好'
ws['B4']=dtt.now()
ws.append(['nihao','wohao','heihei123',4,5,6]) wb.save('f:\\pylianxi\\test\\test.xlsx') #加载已存在的excel wb=load_workbook('f:\\pylianxi\\test\\test.xlsx') print('load active_sheet:',wb.active.title)
print(wb.sheetnames)
print('测试数据的标题:',wb['测试数据'].title) for i in wb['测试用例'].rows:
for j in i:
print(j.value,end=' ')
print() print(type(wb))
print(type(wb['测试用例']))
for sheet in wb:
print('**',sheet.title) #使用cell读写单元格
ws=wb['测试用例'] #写入
ws.cell(row=2,column=1).value='大家真的好吗' #行号和列号从1开始
ws.cell(row=5,column=3,value='设么东东') wb.save('f:\\pylianxi\\test\\test.xlsx') #读
print('ws.cell(row=2,column=1).value:',ws.cell(row=2,column=1).value)
print('ws.cell(row=5,column=3).value:',ws.cell(5,3).value) #小练习 for i in range(1,4):
for j in range(1,4):
ws.cell(i,j).value=i*j wb.save('f:\\pylianxi\\test\\test.xlsx') #可以设置默认打开的sheet页
#wb.active=1 默认是0 #注意 cell的 行列 是从1,1开始的,不是0,0,rows、columns的迭代器都是从0开始的 print('#'*20)
#取某一列
for cell in ws["C"]:
print (cell.value) #取多列的值
for i in ws['A':'C']:
#for column in ws["A:C"]:
for j in i:
print(j.value) #按列取
print('*'*20)
for i in ws[1:3]:
for j in i:
print(j.value) print('*'*20)
#指定区域范围取值
for i in ws.iter_rows(min_row=1,max_row=2,min_col=1,max_col=2):
for j in i:
print(j.value) print('*'*20)
print(list(ws.rows)[1:]) #从第2行开始取值
for i in ws.rows:
print(i)
for j in i:
print(j.value) print('*'*20)
#按列取值
for i in ws.columns:
for j in i:
print(j.value,end=' ')
print() #获取最大行列,最小行列
print(ws.max_row,ws.min_row,ws.max_column,ws.min_column) #
print(ws.rows) #行生成器
print(list(ws.rows)[0])#第一行
print(list(ws.rows)[0][0])#第一个单元格
print(list(ws.rows)[0][0].value)#第一个单元格的值 print(ws.columns) #列生成器
print(list(ws.columns)[0])#第一列
print(list(ws.columns)[0][0])#列第一个单元格
print(list(ws.columns)[0][0].value)#列第一个单元格的值 #单元格格式 number_format import datetime
wb = load_workbook('e:\\sample.xlsx') ws=wb.active
wb.guess_types = True ws["A1"]=datetime.datetime(2010, 7, 21)
print (ws["A1"].number_format) ws["A2"]="12%"
print (ws["A2"].number_format) ws["A3"]= 1.1
print (ws["A3"].number_format) ws["A4"]= "中国"
print (ws["A4"].number_format)
# Save the file
wb.save("e:\\sample.xlsx") #guess_types 猜测单元格的类型 wb=load_workbook('e:\\sample.xlsx')
wb.guess_types=True #可以猜测 存储的某字段值 是什么类型 ws=wb.active ws['D2']='12%' #如果是True 则会按0.12处理,否则会按str处理
print(ws['D2'].value)
print(type(ws['D2'].value))
wb.save('e:\\sample.xlsx') #单元格输入公式,打开excel会自动计算 ws["A4"] = "=SUM(1, 1)"
ws["A5"] = "=SUM(A1:A3)" print (ws["A4"].value) #打印的是公式内容,不是公式计算后的值,程序无法取到计算后的值
print (ws["A5"].value) #打印的是公式内容,不是公式计算后的值,程序无法取到计算后的值 #合并单元格(2种方式)
#ws.merge_cells('A2:D2') #合并完了之后取值,按A2取值,B2、C2、D2取不到值
#ws.unmerge_cells('A2:D2') print("ws['A2'].value:",ws['A2'].value) #合并单元格区域
ws.merge_cells(start_row=1,start_column=1,end_row=2,end_column=4)
ws.unmerge_cells(start_row=1,start_column=1,end_row=2,end_column=4) #单元格插入图片
from openpyxl.drawing.image import Image img = Image('e:\\Snap1.jpg')
#ws.add_image(img, 'A15')
wb.save('e:\\sample.xlsx') #设置单元格字体
from openpyxl.styles import colors
from openpyxl.styles import Font ft=Font(name="楷体",color=colors.BLUE,size=20,bold=True,underline="single",family=1) ws['A1'].font=ft
ws['A1']='你好吗哈哈'
wb.save('e:\\sample.xlsx') #比较全面的设置单元格格式 from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.styles import NamedStyle, Font, Border, Side,PatternFill
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font wb = Workbook()
ws = wb.active ft = Font(name=u'微软雅黑',
size=11,
bold=False,
italic=False,
vertAlign=None,
underline='none',
strike=False,
color='FF000000') #ft=Font(bold=True, size=20,color= "ff0100") #fill = PatternFill(fill_type="solid",start_color='FFEEFFFF',end_color='FF001100')
fill = PatternFill("solid", fgColor="DDDDDD") #边框可以选择的值为:'hair', 'medium', 'dashDot', 'dotted', 'mediumDashDot', 'dashed', 'mediumDashed', 'mediumDashDotDot', 'dashDotDot', 'slantDashDot', 'double', 'thick', 'thin']
#diagonal 表示对角线
bd = Border(left=Side(border_style="thin",
color='FF001000'),
right=Side(border_style="thin",
color='FF110000'),
top=Side(border_style="thin",
color='FF110000'),
bottom=Side(border_style="thin",
color='FF110000'),
diagonal=Side(border_style=None,
color='FF000000'),
diagonal_direction=0,
outline=Side(border_style=None,
color='FF000000'),
vertical=Side(border_style=None,
color='FF000000'),
horizontal=Side(border_style=None,
color='FF110000')
)
#bdline = Side(style='thick', color="000000")
#bd = Border(left=bdline, top=bdline, right=bdline, bottom=bdline) alignment=Alignment(horizontal='general',
vertical='bottom',
text_rotation=0,
wrap_text=False,
shrink_to_fit=False,
indent=0) number_format = 'General' protection = Protection(locked=True,hidden=False) ws["B5"].font = ft
ws["B5"].fill =fill
ws["B5"].border = bd
ws["B5"].alignment = alignment
ws["B5"].number_format = number_format ws["B5"].value ="glory road" # Save the file
wb.save("e:\\sample.xlsx")
python3 excel基本操作及格式设置的更多相关文章
- java操作Excel的poi 格式设置
格式设置 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi. ...
- C#导出Excel按照指定格式设置单元格属性值
最近项目中一直在写XML.Table.Excel之间的转化.之前一直都是不考虑格式的导出,今天给出一个格式,让按照格式导出,还真把我这新手为难了一翻,网上给出的资料基本一样.为了一个单元格文字变色纠结 ...
- C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置
一.对行高,列宽.单元格边框等的设置 这篇简短的文字对单元格的操作总结的比较全面,特此转载过来. private _Workbook _workBook = null; private Workshe ...
- 原创:如何实现在Excel通过循环语句设置指定行的格式
原创:如何实现在Excel通过循环语句设置指定行的格式 一.需求: 想让excel的某些行(比如3的倍数的行)字体变成5号字 如何整: 二.实现: Sub code() To Range(" ...
- Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式
Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式 解决: xlwt 中设置单元格样式主要 ...
- C#/VB.NET 如何在Excel中使用条件格式设置交替行颜色
说起高亮数据行,不让人想起了交替颜色行,有的人把交替颜色行也都设置成高亮,不仅不美观,而且对阅读还是个干扰.隔行交替的颜色是为了阅读不串行,这些行只是环境,数据才是主体.那么如何通过C#/VB.NET ...
- Excel透视表基础之字段布局与重命名、更新、数字格式设置、空值与错误值、
字段布局与重命名 经典布局切换 字段布局 默认布局:文本类型在行区域.数字类型在值区域. 最好用鼠标拖拽. 字段重命名 可以在字段设置中更改. 透视表更新 延迟更新 手动刷新 自动刷新 刷新注意事项 ...
- NPOI 格式设置2—时间,千分位,繁体,小数位
在Excel中我们经常要设置格式,比如说日期格式(yyyymmdd).小数点格式(1.20).货币格式($2000).百分比格式(99.99%)等等,这些东西在过去我们恐怕只能在服务器端生成好,不但增 ...
- .net解决数据导出excel时的格式问题
在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下 ...
随机推荐
- 虚拟机VMWare的操作
软件测试工程师需要搭建测试环境——虚拟机操作. VMWare Workstation虚拟机:模拟真实的环境进行各种试验和操作,启动之后,会占用一部分的系统资源. 官网安装:http://www.vmw ...
- ConfigMap介绍
来源 ConfigMap API资源用来保存key-value pair配置数据,这个数据可以在pods里使用,或者被用来为像controller一样的系统组件存储配置数据.虽然ConfigMap跟S ...
- 微信公众号使用vue,安卓端点击按钮404,ios访问正常问题
情景:微信公众号使用vue开发的单页面,在安卓端点击按钮访问显示404,ios访问正常问题,能正常显示. 解决:将微信公众号菜单按钮设置的路径中把WWW去掉后,安卓.ios都能正常访问. 问题路径ww ...
- 032 Android智能下拉刷新框架-SmartRefreshLayout+RecyclerView的使用
1.SmartRefreshLayout介绍 SmartRefreshLayout的目标是打造一个强大,稳定,成熟的下拉刷新框架,并集成各种的炫酷.多样.实用.美观的Header和Footer. 正如 ...
- [转帖]InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念
InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念 2017-12-15 15:37:00 jhzh951753 ...
- Quartz.Net—DateBuilder
定时框架中最重要的就是时间,我们也可以直接使用Cron这种事件格式. 使用其他的时间格式,就可以用DateBuilder快速的创建出需要的时间. 因为quartz是一个定时框架,所以对于操控时间 ...
- PAT(B) 1033 旧键盘打字(C) 字符
题目链接:1033 旧键盘打字 (20 point(s)) 题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是 ...
- 题解-CSA Beta Round#1 Number Elimination
Problem CSA-Beta Round#3 题意概要:给定 \(n\) 个数组成的序列,定义一次操作: 在当前序列中选择两个数,将其中较小的数从序列中删除(若两个数相同,则删除在序列中更靠前的) ...
- MyBatis Generator 自动生成的POJO对象的使用(一)
MyBatis Generator 会自动生成以下几种类型的对象(除非你使用MyBatis3DynamicSql 的运行环境): Java Model Objects(总是生成) SQL Map Fi ...
- LINUX CGROUP总结
简介: Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等).这个项目最早是由Go ...