Commit 8bdb50d2 by Ivan Lan

fix: rebuild export_template_xlsx

parent 5259f731
......@@ -48,42 +48,7 @@ module TalltyImportExport
end
def export_workbook(workbook, **options)
# excel导出样式
alignment = { vertical: :center, horizontal: :center }
border = { color: '969696', style: :thin }
title1 = workbook.styles.add_style(alignment: alignment, border: border, sz: 12, b: true)
title2 = workbook.styles.add_style(alignment: alignment, border: border, bg_color: '2a5caa', sz: 12, fg_color: 'fffffb')
title3 = workbook.styles.add_style(alignment: alignment.merge(wrap_text: true), border: border, sz: 10)
_sheet_name = (respond_to?(:sheet_name) ? sheet_name : nil) || options[:sheet_name]
header_obj = @headers
workbook.add_worksheet(name: _sheet_name) do |sheet|
index = 0
if respond_to?(:first_header)
row_index = Axlsx.col_ref(headers.size - 1)
sheet.merge_cells("A1:#{row_index}1")
sheet.add_row [first_header], style: title1, height: 30
index += 1
end
header_obj.header_lines.each do |header_line|
sheet.add_row(header_line.map(&:name), style: title2, height: 25)
index += 1
end
# 合并相同 header
header_obj.header_seq_to_axios.values.each do |axios_ary|
next unless axios_ary.count > 1
top_right = [axios_ary.map(&:first).min, axios_ary.map(&:last).min]
bottom_left = [axios_ary.map(&:first).max, axios_ary.map(&:last).max]
sheet.merge_cells(
Axlsx.cell_r(top_right.first, top_right.last) + ':' + Axlsx.cell_r(bottom_left.first, bottom_left.last),
)
end
end
TalltyImportExport::Export.new(@klass, @context).export_workbook(workbook, @klass.none, **options)
end
def exchange_to_ids(xlsx_file, associations, **options)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment