Spire.Xls 带格式复制某区域单元格到指定区域

# something.py

from os.path import join
import clr
import os

os.chdir(os.path.dirname(__file__))

def show_info(obj,*filter):
    count = 0
    print(f'{str(type(obj)):=^100}')
    if filter:
        for i in dir(obj):
            for f in filter:
                if i.lower().find(f.lower())>-1:
                    print(f'{i:^25}',end='\t')
                    count+=1
                    if(count%3==0):print()
                    break
    else:
        for i in dir(obj):
            print(f'{i:^25}',end='\t')
            count+=1
            if(count%3==0):print()
    print()

lib_root = 'F:\\spirexls_downyi.com\\'

library_names = [
    'Spire.License.dll',
    'Spire.Pdf.dll',
    'Spire.Xls.dll'
]

for lib in library_names:
    clr.AddReference(join(lib_root,lib))
clr.AddReference('System.IO')

from System.IO import *
from Spire.License import *
from Spire.Pdf import *
from Spire.Xls import *

def ptype(obj):
    print(type(obj),obj)
# demo2.py
from something import *

import glob

xls = glob.glob(r'C:\Users\Administrator\Desktop\demo_spire_xls\xls\*')

out_book = Workbook()
out_book.LoadFromFile('./bill.xlsx')
out_sheet = out_book.Worksheets[0]
next_row = 1

for x in xls:
    input_book = Workbook()
    input_book.LoadFromFile(x)
    input_sheet = input_book.Worksheets[3]
    
    input_range = input_sheet.Range['A1:X38']
    input_range.Copy(out_sheet.Range[f'A{next_row}:X{next_row+38}'])
    next_row+=38
    
out_book.SaveToFile('./out_book.xlsx',ExcelVersion.Version2013)
    
# demo_spire_xls

# -*- coding:utf8 -*-
# need install pythonnet

from something import *


def write_project(*projects):
    num_projects = len(projects)
    
    # 读取excel
    try:
        workbook = Workbook()
        workbook.LoadFromFile('./bill.xlsx')
        worksheet = workbook.Worksheets[0]
    except Exception as e:
        print(e)
        exit()
    next_copy_start_row = 39
    
    # 将源表格复制到指定区域
    source_range = worksheet.Range['A1:X38']
    for _ in range(num_projects):
        dst_range = worksheet.Range[f'A{next_copy_start_row}:X{next_copy_start_row+38}']
        print(dst_range)
        source_range.Copy(dst_range)
        next_copy_start_row += 38
        
        # write one project code
        # ...
        
    # 保存结果
    workbook.SaveToFile('./save.xlsx',ExcelVersion.Version2013)
        
    


if __name__ == '__main__':
    write_project(*[1,2,3,4])
    
    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值