# 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])