1.读取单元格保存到文件,注意python中文件报错或者不能写入时改文件后缀:.xls

from openpyxl import Workbook

from openpyxl import load_workbook

from openpyxl.styles import NamedStyle, Border, Side, Alignment

wb = load_workbook(r"C:\\Users\\Desktop\\报表数据\\运营1月报数据底稿_20190808_V 1.0.xlsx")

sh = wb["test_data"]

#读取头

#用enumerate包装一个可迭代对象,可以同时使用索引和迭代项

fp1 = open('test1.xls', 'w')

for index, item in enumerate(sh["A1":"AA1"]):

if index > 0:

print("\n")

for cell in item:

print(cell.value, sep=" ",end=" ",file=fp1)

#读取运营部数据

fp = open('test.xls', 'w')

for index, item in enumerate(sh["A29":"AA48"]):

if index > 0:

print("\n")

for cell in item:

print(cell.value, sep=" ",end=" ",file=fp)

print(cell.value, end=" ", file=fp, flush=True)

fp1.close()

fp.close()

2.读入数据并创建新的sheet写入,添加了一列日期

from openpyxl import Workbook

from openpyxl import load_workbook

from openpyxl.styles import NamedStyle, Border, Side, Alignment

wb = load_workbook(r"C:\\Users\\Desktop\\报表数据\\运营1月报数据底稿.xlsx")

sh = wb["test_data"]

#写入表头

dilei_head = ['产品线/产品','内部顾问费','通用外包费','实施费(固定价)','软件维护费','软件-摊销','硬件-折旧','硬件维保','IDC运维费','网络租金','差旅费','直接成本',

'部门间采购','总投入','集团部室','SBU/BU','集团外','外部收入小计','部门间销售','总收入','直接销售收入','直接利润率','DBA收入还原',

'运营','建设','考核营收','内部营收','日期']

dilei_col = ['IT运营服务部','资金管理系统','财务合并','全面预算','财务核算','ERP管理','供应商管理','税务管理系统','商业智能平台','ITSM平台'

,'企业服务总线','安全身份管理平台','桌面及总部VIP运维','邮件系统','主数据','DBA服务','集团SAP','服务台','ISO认证','服务计量平台']

sheet0Name = '运营分析'

sheet0 = wb.create_sheet(sheet0Name, index=0)

for i, item in enumerate(dilei_head):

sheet0.cell(row = 1,column=i+1,value=item)

for i, item in enumerate(dilei_col):

sheet0.cell(row = i+2,column=1,value=item)

# 写入数据

for index, item in enumerate(sh["A29":"AA48"]):

index = index + 2

for j, val in enumerate(item):

sheet0.cell(row=index, column=j + 1, value=val.value)

sheet0.cell(index,28).value = '2019-01'

wb.save( 'test.xls')

3.合并单元格处理

import pandas as pd

import numpy as np

import xlrd

import xlwt

from openpyxl.workbook import Workbook

from openpyxl.writer.excel import ExcelWriter

pd.set_option('display.max_rows',2000)

pd.set_option('display.width',2000)

def read_excel(file_path):

data=xlrd.open_workbook(file_path)

table1=data.sheet_by_name('月报数据底稿')

nrows=table1.nrows

ncols = table1.ncols

#print(ncols)

colspan = {}

if table1.merged_cells:

for item in table1.merged_cells:

for row in range(item[0], item[1]):

for col in range(item[2], item[3]):

# 合并单元格的首格是有值的,所以在这里进行了去重

if (row, col)!= (item[0], item[2]):

colspan.update({(row, col):(item[0],item[2])})

# 读取每行数据

row1 = []

for i in range(1,2):

for j in range(ncols):

# 假如碰见合并的单元格坐标,取合并的首格的值即可

if colspan.get((i, j)):

row1.append(table1.cell_value(*colspan.get((i, j))))

else:

row1.append(table1.cell_value(i, j))

print(row1)

for i in range(29, 49):

row2 = []

for j in range(ncols):

# 假如碰见合并的单元格坐标,取合并的首格的值即可

if colspan.get((i, j)):

row2.append(table1.cell_value(*colspan.get((i, j))))

else:

row2.append(table1.cell_value(i, j))

print(row2)

#保存数据

new_x=[list(t) for t in set(tuple(_) for _ in x)]

wb = Workbook()

ws = wb.active

ws.title = u'1月份数据'

# 向第一个sheet页写数据吧

i = 1

r = 1

for line in new_x:

for col in range(1, len(line) + 1):

ColNum = r

ws.cell(row=r, column=col).value = line[col - 1]

i += 1

r += 1

# 工作簿保存到磁盘

wb.save('data.xlsx')

4.批量读取excel文件

import pandas as pd

import numpy as np

import xlrd

import xlwt

pd.set_option('display.max_rows',2000)

pd.set_option('display.width',2000)

for i in range(1,8):

excel_name='C:\\Users\\Desktop\\报表数据\\运营%d月报数据底稿_20190808_V 1.0.xlsx'% i

wb=xlrd.open_workbook(excel_name)

#wb=xlwt.Workbook()

sheets_name=wb.sheet_names()

#print(sheets_name)

table1=wb.sheet_by_name('月报数据底稿')

table2=wb.sheet_by_name('10-收入明细')

#print(table1.name, table1.nrows, table1.ncols)

for p in range(1,27):

for m in range(1,27):

#for j in range(0,23):

rows1 = table1.row_values(p) # 获取行内容

rows2 = table1.row_values(m) # 获取行内容

#cols = table1.col_values(j) # 获取列内容

#获取单元格内容

print(table1.cell_value(p,m))

python使用openpyxl读取数据_Python-openpyxl读取和写入数据1相关推荐

  1. python向excel写数据_Python向excel中写入数据的方法

    最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...

  2. linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据

    Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...

  3. python如何打开一个xlsx用列表的格式写入数据

    以下代码有什么bug self.fp = open(f'./{file_name}.xlsx', 'w', encoding='utf-8'),python如何打开一个xlsx用列表的格式写入数据 以 ...

  4. python openpyxl模块追加数据_python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据...

    当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...

  5. python提取数据库数据_Python如何读取MySQL数据库表数据

    本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参考,具体内容如下 环境:Python 3.6 ,Window 64bit 目的:从MySQL数据库读取目标表数据,并处理 ...

  6. python怎么从excel获取数据_python如何读取excel表数据

    python读取excel表数据的方法:首先安装Excel读取数据的库xlrd:然后获取Excel文件的位置并且读取进来:接着读取指定的行和列的内容,并将内容存储在列表中:最后运行程序即可. pyth ...

  7. python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...

    如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...

  8. python openpyxl详解_python openpyxl使用方法详解

    openpyxl特点 openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件,xls和xlsx之间转换容易 注意:如果文字编码是"gb2312" ...

  9. python如何读取文本_python怎么读取文本文件

    python怎么读取文本文件? 文件的读取 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() ...

  10. python opencv 读取图片_Python opencv 读取图像

    对于 matlab 起家做数字图像处理的人来讲都非常适应matlab对图像处理的操作和思路,尤其是它可以非常方便直观的看到图像的RGB值. 由于最近在研究深度学习的计算机视觉方面的东西,于是完全自学接 ...

最新文章

  1. Context-Based Access Control (CBAC) 基于上下文的访问控制 理论知识
  2. 编写MapReduce程序,统计每个买家收藏商品数量,实现统计排序功能
  3. LightGBM是什么?相对于xgboost有什么优势?如何使用randomSearchCV和lightgbm进行组合获取最优参数组合?
  4. sql建表,建索引注意事项
  5. .net (object sender, EventArgs e) 学习总结
  6. 结对编程Wordcount
  7. [转]C#算法 一对小兔子一年后长成大兔子;一对大兔子每半年生一对小兔子。大兔子的繁殖期为4年,兔子的寿命是6年。假定第一年年初投放了一对小兔子,试编程计算,第n年末总共会有多少对兔子...
  8. 大牛书单 | 新年聊创新:技术人必备思维
  9. jmeter测试客户端_如何在JMeter中执行客户端Web性能测试?
  10. 鸿蒙专属ota升级真机,鸿蒙OS手机开发者Beta版发布,华为P40、Mate 30系列优先公测...
  11. 望城2019年华为软件云项目_今天,华为、京东两大项目在长沙开工
  12. 面向对象java试题_经典面向对象试题,用Java做,要详细点的!先谢过了
  13. 压力传感器原理与组成
  14. MySQL查询point类型类型的坐标,返回经度纬度
  15. 三明市机器人协会_☞ 智能之花 绚丽绽放——2019年三明市区首届青少年机器人竞赛活动在三明市陈景润实验小学完美收官...
  16. C语言解决打鱼晒网问题
  17. 信号与系统作业之我的朋友把我的大作业分享了好朋友
  18. Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别
  19. 常用二维码介绍与分析
  20. 有源阻尼抑制LCL滤波器固有谐振

热门文章

  1. 消息模式Toast.makeText的几种常见用法
  2. django使用postgresql时提示主键冲突
  3. ZipKin添加自定义跨度Span
  4. 看完你也想编写自己的 react 插件
  5. linux系统下文件命令详解
  6. yaf_dispatcher.c 的 yaf_dispatcher_fix_default函数
  7. 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码
  8. ORACLE 几个我忍了他很多年的问题
  9. NB-IOT来了,物联网时代才真正来临
  10. 《Oracle SQL疑难解析》——1.6 批量地从一个表中复制数据到另一个表