|
|
|
|
@ -1,8 +1,7 @@ |
|
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def copy_cells(src_sheet, dst_sheet, style_list, |
|
|
|
|
row_from=0, row_to=None, dst_row_shift=0, |
|
|
|
|
def copy_cells(src_sheet, dst_sheet, style_list, row_from=0, row_to=None, dst_row_shift=0, |
|
|
|
|
col_from=0, col_to=None, dst_col_shift=0): |
|
|
|
|
""" |
|
|
|
|
Скопировать блок ячеек из диапазона строк [row_from, row_to] и колонок |
|
|
|
|
@ -27,13 +26,11 @@ def copy_cells(src_sheet, dst_sheet, style_list, |
|
|
|
|
height_rows(src_sheet, dst_sheet, row_from, row_to, dst_row_shift) |
|
|
|
|
|
|
|
|
|
# объединить ячейки |
|
|
|
|
merge_cells(src_sheet, dst_sheet, style_list, |
|
|
|
|
row_from, row_to, dst_row_shift, |
|
|
|
|
col_from, col_to, dst_col_shift) |
|
|
|
|
merge_cells(src_sheet, dst_sheet, style_list, row_from, |
|
|
|
|
row_to, dst_row_shift, col_from, col_to, dst_col_shift) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def height_rows(src_sheet, dst_sheet, |
|
|
|
|
row_from=0, row_to=None, dst_row_shift=0): |
|
|
|
|
def height_rows(src_sheet, dst_sheet, row_from=0, row_to=None, dst_row_shift=0): |
|
|
|
|
"""Задать в диапазоне строк [row_from, row_to] высоту как в исходном листе. |
|
|
|
|
""" |
|
|
|
|
row_to = row_to or src_sheet.nrows - 1 |
|
|
|
|
@ -44,9 +41,8 @@ def height_rows(src_sheet, dst_sheet, |
|
|
|
|
dst_sheet.row(row + dst_row_shift).height_mismatch = True |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def merge_cells(src_sheet, dst_sheet, style_list, |
|
|
|
|
row_from=0, row_to=None, dst_row_shift=0, |
|
|
|
|
col_from=0, col_to=None, dst_col_shift=0): |
|
|
|
|
def merge_cells(src_sheet, dst_sheet, style_list, row_from=0, |
|
|
|
|
row_to=None, dst_row_shift=0, col_from=0, col_to=None, dst_col_shift=0): |
|
|
|
|
""" |
|
|
|
|
Объединить ячейки в заданном блоке нового листа, ограниченном строками |
|
|
|
|
[row_from, row_to] и колонками [col_from, col_to], если в исходном листе |
|
|
|
|
@ -64,20 +60,6 @@ def merge_cells(src_sheet, dst_sheet, style_list, |
|
|
|
|
cell = src_sheet.cell(r1, c1) |
|
|
|
|
style = style_list[cell.xf_index] |
|
|
|
|
|
|
|
|
|
# сохранить границы "крайней" ячейки |
|
|
|
|
# нафиг пока эту фичу - из-за нее повылазили какие-то границы, |
|
|
|
|
# которых не было вообще |
|
|
|
|
# brd_1 = style.borders |
|
|
|
|
# cell_2 = src_sheet.cell(r2-1, c2-1) |
|
|
|
|
# brd_2 = style_list[cell_2.xf_index].borders |
|
|
|
|
# print r1,c1,r2,c2, |
|
|
|
|
# print 'borders 1 (left, right, top, bottom)', |
|
|
|
|
# print brd_1.left, brd_1.right, brd_1.top, brd_1.bottom, |
|
|
|
|
# print 'border 2 (same)', |
|
|
|
|
# print brd_2.left, brd_2.right, brd_2.top, brd_2.bottom |
|
|
|
|
# brd_1.right = brd_2.right |
|
|
|
|
# brd_1.right_colour = brd_2.right_colour |
|
|
|
|
|
|
|
|
|
dst_sheet.merge( |
|
|
|
|
r1 + dst_row_shift, r2 + dst_row_shift - 1, |
|
|
|
|
c1 + dst_col_shift, c2 + dst_col_shift - 1, |
|
|
|
|
@ -104,10 +86,7 @@ def horz_page_break(dst_sheet, row): |
|
|
|
|
dst_sheet.horz_page_breaks.append((row, 0, 255)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# -------------------------------------------------------------- прочие хелперы |
|
|
|
|
|
|
|
|
|
def clone_row(src_sheet, dst_sheet, style_list, |
|
|
|
|
src_row, n_times=1, dst_row_shift=0): |
|
|
|
|
def clone_row(src_sheet, dst_sheet, style_list, src_row, n_times=1, dst_row_shift=0): |
|
|
|
|
""" |
|
|
|
|
Размножить n_times раз строку из исходного листа, с сохранением стилей |
|
|
|
|
форматирования. |
|
|
|
|
@ -138,7 +117,8 @@ def merge_cells_in_row(src_sheet, dst_sheet, style_list, src_row, dst_row): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def sum_src_heights(src_sheet, row_from, row_to): |
|
|
|
|
"""Суммарная высота всех строк диапазона [row_from, row_to] |
|
|
|
|
""" |
|
|
|
|
Суммарная высота всех строк диапазона [row_from, row_to] |
|
|
|
|
исходного листа. |
|
|
|
|
""" |
|
|
|
|
result = 0 |
|
|
|
|
@ -150,7 +130,8 @@ def sum_src_heights(src_sheet, row_from, row_to): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def sum_dst_heights(dst_sheet, row_from, row_to): |
|
|
|
|
"""Суммарная высота всех строк диапазона [row_from, row_to] |
|
|
|
|
""" |
|
|
|
|
Суммарная высота всех строк диапазона [row_from, row_to] |
|
|
|
|
на новом листе. |
|
|
|
|
""" |
|
|
|
|
result = 0 |
|
|
|
|
|