zoukankan      html  css  js  c++  java
  • 把一个表格文件拆分

     1 #coding:utf8
     2 '''
     3 Created on 2018年8月18日
     4 
     5 @author: Administrator
     6 '''
     7 # from openpyxl import load_workbook
     8 # 
     9 # wb=load_workbook("empty_book.xlsx")
    10 # 
    11 # sheet_ranges=wb['range names']
    12 # print(sheet_ranges['D18'].value)
    13 
    14 
    15 # import openpyxl
    16 # 
    17 # wb=openpyxl.Workbook()
    18 # ws=wb.active
    19 # ws.column_dimensions.group('A','D',hidden=True)
    20 # ws.row_dimensions.group(1,10,hidden=True)
    21 # wb.save("group.xlsx")
    22 import time,re
    23 from openpyxl import load_workbook
    24 
    25 from openpyxl import Workbook
    26 import threading
    27 #新建的文件
    28 nwb=Workbook(write_only=True)
    29 def add_ws(nws_name):#负责增加工作表,设置名字
    30     obj=nwb.create_sheet(nws_name)
    31     obj.sheet_properties.tabColor="1072BA"
    32     return obj
    33 
    34 #读的数据文件
    35 wb = load_workbook(filename='demo_s.xlsx')
    36 ws=wb.active
    37 
    38 f_name="标题"
    39 add_ws(f_name)
    40 for row in ws.rows: 
    41     data_list=[] 
    42     for cell in row:
    43         a=cell.value
    44         data_list.append(a)
    45         sheetName=str(a)           
    46         if re.search(r'^包d{1,2}$',sheetName):
    47             print(cell.value)
    48             new_ws=add_ws(sheetName)
    49             f_name=sheetName
    50     nwb[f_name].append(data_list)
    51         
    52             
    53 nwb.save("new11.xlsx")

     1 '''
     2 Created on 2018年8月18日
     3 
     4 @author: Administrator
     5 '''
     6 import time,re
     7 from openpyxl import load_workbook
     8 from openpyxl.workbook import Workbook
     9 
    10 #新建的文件
    11 nwb=Workbook(write_only=True)
    12 def add_ws(nws_name):#负责增加工作表,设置名字
    13     obj=nwb.create_sheet(nws_name)
    14     obj.sheet_properties.tabColor="1072BA"
    15     return obj
    16 def merge_new():
    17     obj_ws=nwb["标题"]
    18     for j in range(1,14):
    19         obj_ws.merge_cells(start_row=2, start_column=j, end_row=4, end_column=j)
    20 
    21 #读的数据文件
    22 wb = load_workbook(filename='demo_s.xlsx')
    23 ws=wb.active
    24 
    25 
    26 
    27 ares=["标题","曹县","成武县","单县","定陶","东明县","巨野","牡丹区","郓城县","鄄城县"]
    28 list_nie=["第一行","第二行","第三行","第四行"]
    29 for i in ares:
    30     abc=add_ws(i)#已经生成  
    31     for i in range(4):
    32         abc.append(list_nie)
    33     
    34 f_name="标题"
    35 for row in ws.rows: 
    36     data_list=[] 
    37     for cell in row:
    38         a=cell.value
    39         data_list.append(a)
    40         sheetName=str(a)        
    41         if sheetName in ares:
    42             f_name=sheetName 
    43             #print(f_name)                     
    44 #         if re.search(r'^包d{1,2}$',sheetName):
    45 #             print(cell.value)
    46 #             new_ws=add_ws(sheetName)
    47 #             f_name=sheetName
    48     nwb[f_name].append(data_list)
    49 # merge_new()       
    50 # nwb["标题"].merge_cells(start_row=2, start_column=1, end_row=4, end_column=1)         
    51 nwb.save("new14.xlsx")

     1 '''
     2 Created on 2018年8月18日
     3 
     4 @author: Administrator
     5 '''
     6 import time,re
     7 from openpyxl import load_workbook
     8 from openpyxl.workbook import Workbook
     9 
    10 #新建的文件write_only=True
    11 nwb=Workbook()
    12 def add_ws(nws_name):#负责增加工作表,设置名字
    13     obj=nwb.create_sheet(nws_name)
    14     obj.sheet_properties.tabColor="1072BA"
    15     return obj
    16 def merge_new():
    17     obj_ws=nwb["标题"]
    18     for j in range(1,14):
    19         obj_ws.merge_cells(start_row=2, start_column=j, end_row=4, end_column=j)
    20 
    21 #读的数据文件
    22 wb = load_workbook(filename='demo_s.xlsx')
    23 ws=wb.active
    24 
    25 
    26 
    27 ares=["标题","曹县","成武县","单县","定陶","东明县","巨野","牡丹区","郓城县","鄄城县"]
    28 list_nie=["第一行","第二行","第三行","第四行"]
    29 for i in ares:
    30     abc=add_ws(i)#已经生成  
    31     for x in range(1,5):
    32         for y in range(1,15):
    33             abc.cell(row=x,column=y)
    34     for j in range(1,14):
    35         abc.merge_cells(start_row=2, start_column=j, end_row=4, end_column=j)
    36     #for i in range(4):
    37         
    38         #abc.append(list_nie)
    39     
    40 f_name="标题"
    41 for row in ws.rows: 
    42     data_list=[] 
    43     for cell in row:
    44         a=cell.value
    45         data_list.append(a)
    46         sheetName=str(a)        
    47         if sheetName in ares:
    48             f_name=sheetName 
    49             #print(f_name)                     
    50 #         if re.search(r'^包d{1,2}$',sheetName):
    51 #             print(cell.value)
    52 #             new_ws=add_ws(sheetName)
    53 #             f_name=sheetName
    54     nwb[f_name].append(data_list)
    55 # merge_new()       
    56 # nwb["标题"].merge_cells(start_row=2, start_column=1, end_row=4, end_column=1)         
    57 nwb.save("new15.xlsx")
    添加合并的一些功能

     增加合并单元格,设置字体格式。颜色填充

      1 '''
      2 Created on 2018年8月18日
      3 
      4 @author: Administrator
      5 '''
      6 import time,re,os
      7 from openpyxl import load_workbook
      8 from openpyxl.workbook import Workbook
      9 from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font
     10 from openpyxl.styles.colors import RED
     11 #字体
     12 #font = Font(name='宋体',size=13,bold=True,italic=False,vertAlign=None,underline='none',strike=False,color='FF000000')
     13 #对齐方式
     14 #alignment=Alignment(horizontal='general',vertical='bottom',text_rotation=0,wrap_text=False,shrink_to_fit=False,indent=0)
     15 #填充颜色
     16 #fill = PatternFill(start_color='FFFF33',end_color='FFFF99')
     17 fill = PatternFill(start_color ='FFFF00', end_color = 'FFFF00', fill_type = 'solid') 
     18 path=os.path.dirname(os.path.abspath(__file__))
     19 file_open=os.path.join(path,"demo_s.xlsx")
     20 file_save=os.path.join(path,"new30.xlsx")
     21 #新建的文件write_only=True
     22 nwb=Workbook()
     23 def add_ws(nws_name):#负责增加工作表,设置名字
     24     obj=nwb.create_sheet(nws_name)
     25     obj.sheet_properties.tabColor="1072BA"
     26     return obj
     27 def merge_new(obj):
     28     for j in range(1,14):
     29         obj.merge_cells(start_row=2, start_column=j, end_row=4, end_column=j)
     30     try:
     31         obj.merge_cells('N2:V2')
     32         obj.merge_cells('N3:Q3')
     33         obj.merge_cells('R3:U3')
     34         obj.merge_cells('V3:V4')
     35         
     36         obj.merge_cells('W2:AF2')   
     37         obj.merge_cells('W3:W4')
     38         obj.merge_cells('X3:Z3')
     39         obj.merge_cells('AA3:AD3')
     40         obj.merge_cells('AE3:AE4')
     41         obj.merge_cells('AF3:AF4')
     42         
     43         obj.merge_cells('AG2:AT2')
     44         obj.merge_cells('AG3:AJ3')
     45         obj.merge_cells('AK3:AN3')
     46         obj.merge_cells('AO3:AP3')
     47         obj.merge_cells('AQ3:AR3')
     48         obj.merge_cells('AS3:AS4')
     49         obj.merge_cells('AT3:AT4')
     50         
     51         obj.merge_cells('AU2:AZ2')
     52         obj.merge_cells('AU3:AV3')
     53         obj.merge_cells('AW3:AX3')
     54         obj.merge_cells('AY3:AY4')
     55         obj.merge_cells('AZ3:AZ4')
     56         
     57         obj.merge_cells('BA2:BK2')
     58         obj.merge_cells('BA3:BA4')
     59         obj.merge_cells('BB3:BC3')
     60         obj.merge_cells('BD3:BD4')
     61         obj.merge_cells('BE3:BE4')
     62         obj.merge_cells('BF3:BF4')
     63         obj.merge_cells('BG3:BG4')
     64         obj.merge_cells('BH3:BH4')
     65         obj.merge_cells('BI3:BI4')
     66         obj.merge_cells('BJ3:BJ4')
     67         obj.merge_cells('BK3:BK4')
     68         
     69         obj.merge_cells('BL2:BT2')
     70         obj.merge_cells('BL3:BL4')
     71         obj.merge_cells('BM3:BM4')
     72         obj.merge_cells('BN3:BN4')
     73         obj.merge_cells('BO3:BO4')
     74         obj.merge_cells('BP3:BP4')
     75         obj.merge_cells('BQ3:BQ4')
     76         obj.merge_cells('BR3:BR4')
     77         obj.merge_cells('BS3:BS4')
     78         obj.merge_cells('BT3:BT4')
     79         
     80         obj.merge_cells('BU2:CB2')
     81         obj.merge_cells('BU3:BU4')
     82         obj.merge_cells('BV3:BV4')
     83         obj.merge_cells('BW3:BW4')
     84         obj.merge_cells('BX3:BX4')
     85         obj.merge_cells('BY3:BY4')
     86         obj.merge_cells('BZ3:BZ4')
     87         obj.merge_cells('CA3:CA4')
     88         obj.merge_cells('CB3:CB4')
     89         
     90         obj.merge_cells('CC2:CC4')
     91     except Exception as e:
     92         print(e)
     93 def set_font(obj):
     94     for x in range(1,5):
     95         for y in range(1,82):
     96             a=obj.cell(row=x,column=y)
     97             a.font=Font(name='微软雅黑',size=14,bold=True,italic=True,color=RED)
     98         #obj.row_dimensions[x].font=Font(name='微软雅黑',size=12,bold=True,italic=True)
     99             a.fill=fill
    100 # def set_bg(obj):
    101 #     
    102 #     for fow in obj.rows:
    103 #         flag=False
    104 #         for cell in row:
    105 #          if re.search(r'^包d{1,2}$',str(cell.value)):
    106 #             flag=True
    107 #             break
    108 #         if flag:
    109 #             for cell in row:
    110 #                 cell.fill=fill
    111                     
    112 
    113 
    114 #读的数据文件
    115 wb = load_workbook(file_open)
    116 ws=wb.active
    117 
    118 
    119 
    120 ares=["牡丹区","曹县","成武县","单县","定陶","东明县","巨野","郓城县","鄄城县"]
    121 list_nie=["第一行","第二行","第三行","第四行"]
    122 for i in ares:
    123     abc=add_ws(i)#已经生成    
    124 f_name="op"#op 标记的作用。
    125 for row in ws.rows: 
    126     data_list=[] 
    127     for cell in row:
    128         a=cell.value
    129         data_list.append(a)
    130         sheetName=str(a)
    131 #         if re.search(r'^包d{1,2}$',sheetName):
    132 #             
    133 #             pass        
    134         if sheetName in ares:
    135             f_name=sheetName 
    136     if f_name=="op":
    137         for ss in ares:    
    138             nwb[ss].append(data_list)#.font=font
    139             
    140     else:
    141         nwb[f_name].append(data_list)
    142 try:
    143     for yy in ares:
    144         set_bg(nwb[yy])
    145         set_font(nwb[yy])
    146         merge_new(nwb[yy])
    147 except:
    148     pass
    149 finally:
    150     nwb.save(file_save)
  • 相关阅读:
    ssh代理转发
    了解ssh代理:ssh-agent
    ssh使用密钥进行认证
    拾遗之”三元运算”与”打印奇偶行”
    MySQL 8.0二进制包安装
    awk内置函数
    awk数组详解
    awk动作总结之二
    awk动作总结之一
    [shell]批量抽取文件并重命名
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9497702.html
Copyright © 2011-2022 走看看