导航:首页 > 编程语言 > python带格式拆分excel表单

python带格式拆分excel表单

发布时间:2022-09-09 01:03:36

python把excel第一列相同的分类

Python操作excel文件根据某一字段将相同的类拆分。
需要安装pandas,xlrd,openpyxl库。
定义新列需要用到columns.tolist()函数,具体代码如下:col_name=df.columns.tolistcol_name.insert(新列位置,'新列名称')wb=df.reindex(columns=col_name)然后后面再接一行代码用来定义新列的计算规则。

⑵ 关于Excle表格如何拆分

⑶ Python操作Excel实现自动化报表

Python操作Excel实现自动化报表

安装

python -m pip install xlrd xlwt xlutils。

基本用法

1.从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx

import xlwt
import xlrd
from xlutils. import 
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容


# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列。


2.单元格操作

# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):
     data = xlrd.open_workbook(file_path)
     table = data.sheet_by_name(table)
     return table.cell(y,x).value

# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):
    write_obj_list.append({'cols':cols,'rows':rows,'value':value,
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):
    write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):
    old_excel = xlrd.open_workbook(file_path, formatting_info=True)
    #管道作用
    new_excel = (old_excel)
    '''
    通过get_sheet()获取的sheet有write()方法
    '''
    sheet1 = new_excel.get_sheet(0)
    '''
    1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表
    '''
    for item in write_obj_list:
        if 'id' not in item.keys():
            if 'style' in item.keys():
                sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
            else:
                sheet1.write(item['rows'], item['cols'], item['value'])
        else:
            if 'style' in item.keys():
                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
            else:
                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
    '''
   如果报错 dict_items has no attributes sort
    把syle源码中--alist.sort() 修改为----> sorted(alist) 
    一共修改2次
    '''
    new_excel.save(file_path)

#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数 
# value:合并单元格后的填充值
# style:合并后填充风格:
#     font: name 宋体
#     height 280;
#     alignment: horiz centre
#     ... 与excel操作基本保持一致

(注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中)

最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path,就可以在当前工作目录下生成想要的Excel结果文件。


注意:
1.write_obj_list支持用户自定义
2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成

End

⑷ 用Python拆分EXCEL,一行一个表

EXCEL最多能有256个表吧。若能生成1000个表,也没有使用价值。
想每一行单独打印,可以用WORD的邮件功能。

⑸ Python带格式拷贝excel表格(从A拷贝到B)

使用openpyxl包  从表A.xlsx 完全拷贝数据到表B.xlsx   openpyxl这个包不支持xls格式的excel文件

如果A.xlsx中的数据有用到公式自动求和的,在读取A.xlsx中的的数据的时候 需要

load_workbook(A.xlsx,data_only=True)这样加第二个参数  只读取数据否则读出来的就是公式.

下面是重点如果A.xlsx中的表格带有填充颜色 合并单元格字体格式  等等需要如下这样做

myfile = A.xlsx

targFile = B.xlsx

wb = load_workbook(myfile,data_only=True)._sheets #原要拷贝单元格

wb2 = load_workbook(targFile) # 目标单元格

 wr = wb[index]

 ws = wb2._sheets[1]

 # 两个for循环遍历整个excel的单元格内容

for i, row in enumerate(wr.iter_rows()):

      for j, cell in enumerate(row):

               ws.cell(row=i + 1, column=j + 1, value= cell.value) #拷贝数值

               ws.cell(row=i + 1, column=j + 1).number_format=cell.number_format #拷数字格式

               ws.cell(row=i + 1, column=j + 1).alignment = .(cell.alignment) #

               ws.cell(row=i + 1, column=j + 1).font = .(cell.font) #拷贝字体

               ws.cell(row=i + 1, column=j + 1).border = .(cell.border) #拷贝值

              ws.cell(row=i + 1, column=j + 1).fill = .(cell.fill) #拷贝填充颜色

for merg in wr.merged_cells:

         ws.merge_cells(str(merg)) #合并单元格   

wb2.save(targFile)

这样数据就能完美的从从A拷贝到B啦.格式样式完全一样.

但是 也有两个我没有攻克的问题 在这里说一下吧 希望有大佬能解决并告知在下 ,不胜感激

问题一 从表A中拷贝数据到表B以后 如果表B里面也设置了对数据的公式计算,这个时候 如果不打开表B,直接再把表B里面求和的数据 拷贝到表C的话  数值是拷贝不过去的.打开表C会发现没有数值,我查了一些资料 好像是说 表B里面的数 如果是像上面这样拷贝过去然后通过公式直接计算的值 没有保存上.   所以  要想把数值拷贝到C或者读出来的话 ,需要手动打开表B然后,关闭的时候保存一下才可以.这是问题一.   因为我遇到了一个这样的需求,需要连续拷贝从A拷到B,再把B里面求和的数据拷到C.希望有大佬能够指点一下

问题二就比较神奇了

我把表A里面的数据拆分拷贝到了另外五个汇总的表格里面,这五个其中有一个打开以后会报错,显示 excel文件格式错误.这五个表格在拷贝数据以前就已经存在了,那个时候打开都是没有问题的,只有在拷贝完数据以后会报错,我也不清楚具体的原因. 查了一些资料以后知道,excel表格其实是一种特殊的压缩包,只要把后缀改成zip就可以打开这个压缩文件,然后我找到报错的那个文件,然后用这个报错的文件和正常的文件里面这个去做了对比,发现莫名其妙的多了一些东西,删除掉以后再打开就正常了. 这也是我没有解决的问题,希望有大佬能够指点一二 具体的报错 截图 就是文章中附带的截图

⑹ Python怎么在Excel中把一个单元格里的内容拆分提取

如果格式都是数字、名称+空格这种模式,可以统一正则出来,('\d、\w+\s)

⑺ 如何用python3 将一个大的excel文件(.xlsx)分割为多个excel的文件,sheet 不变。以下是我的代码:

我觉得你要处理数据的话最好用数据库,把excel中的数据读入到数据库中再处理就很轻松了。用python本身支持的sqlite就够了,才800多兆而已。

⑻ python处理excel完整版

**1.2.1 新建保存工作簿(覆盖创建)

获取当前活动工作表的:

以索引值方式获取工作表:

以工作表名获取: wb['工作表名'],注意,此表达方式为切片显示,所以没有成员提示。很少用

循环工作表:很好用,一般用sheetnames

获取所有工作表名:wb.sheetnames

获取指定工作表名

修改工作表名称

新建工作表时的默认工作表名:

workbook.remove(工作表)

A1 表示法: 工作表['A1'] ,R1C1 表示法:工作表.cell(行号,列号)

2.工作表['起始行号': '结束行号']或者工作表['起始行号: 结束行号'],此方法是按行读取的数据。

3.工作表['起始列号': '结束列号']或者工作表['起始列号: 结束列号'],
此方法是按列读取的数据。

4.获取(按行)指定工作表所有已用数据:
list(workbook.worksheets[索引值].values)

按行求和(方法 1)

按行求和(方法 )

按列统计平均值

按行获取工作表使用区域数据:worksheet.rows

按列获取工作表使用区域数据:worksheet.columns
获取工作表中最小行号:worksheet.min_row
获取工作表中最小列号:worksheet.min_column
获取工作表中最大行号:worksheet.max_row
获取工作表中最大列号:worksheet.max_column
获取单元格的行号:cell.row
获取单元格的列号:cell.column iter
方法获取指定区域:
1.按行获取指定工作表单元格区域:worksheet.iter_rows(……)
2.按列获取指定工作表单元格区域:worksheet.iter_cols(……)
可以通过 min_row、min_col、max_col、max_row 这几个参数进行单元格区域的控制

A1 表示法:工作表['A1']=值,R1C1 表示法:工作表.cell(行号,列号,值)

在最后一行写入数据:工作表.append(列表)

1.10.2 实例应用(九九乘法表)

最后加一列写优秀

⑼ Python处理Excel文件(csv, xls, xlsx)

Excel文件格式主要有csv,xlsx和xlsx,对于不同的格式,我们使用不同的包来进行处理。

其中, encoding='utf-8-sig' 是为了编码正常可以正确显示中文, spamreader 中的每一个 row 为list格式,可以循环取出每个单元格的值。

结果:

如果csv文件是数据类的,那么使用 pandas 包读写数据会更方便。

结果:

参数:

结果:

参数:

Excel文件有三层对象:工作薄、工作表和三元格,分别对应 openpyxl 包中的workbook、sheet和cell。

: openpyxl 功能全面,还支持:合并单元格、数学运算、单元格格式、迭代器 ws.iter_rows() 操作等。

: xlrd 打开为只读模式,不可修改。

结果:

结果:

阅读全文

与python带格式拆分excel表单相关的资料

热点内容
华为交换机dhcp配置命令 浏览:314
androidbitmap缩小 浏览:270
单片机串口控制灯 浏览:83
大讯云服务器安装视频 浏览:783
华为算法领先世界 浏览:653
linux路由重启 浏览:565
php的模板编程 浏览:319
编译器原理与实现书 浏览:708
dos选择命令 浏览:16
apm固件编译到单片机 浏览:120
联通深蓝卡都包含什么app 浏览:263
如何判断网络服务器正常 浏览:649
路由器搭桥远端服务器地址是什么 浏览:516
编译动态库时会连接依赖库吗 浏览:708
淘宝手机加密是随机的吗 浏览:672
解压包子怎么装饰 浏览:586
四个数凑24算法 浏览:676
哪一种不是vi编译器的模式 浏览:170
xp在此处打开命令窗口 浏览:128
代码编译运行用什么软件 浏览:999