tallty_import_export 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 284928193ebed0e079f44ba98ee7a2f0d51c05f0c1ea5100dd68973940f56369
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 75dbf1351c7a08ce445b508ea60aba31da811fcfc87e9355c5f8c710f66be47a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8d335d50b6059608dcdb41cc3f44e16f75746d900d698ff1ea3960de8d2541b0fdfadf9b7fceeadef33f70906a3c4673f8247c6aa9406195826f0b45a9977d5e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e72f4ddf2a9bb43f00d031aa74c56723870b63ce0b548110d6c3112a0945dbd21f789759a88834fb1101f24c61e30ce179bd14dea19001c2e4bb81f5e7721c9e
         
     | 
| 
         @@ -29,13 +29,14 @@ module TalltyImportExport 
     | 
|
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                # 导出excel的空模版
         
     | 
| 
       31 
31 
     | 
    
         
             
                def export_template_xlsx(**options)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  origin_options = options.dup
         
     | 
| 
       32 
33 
     | 
    
         
             
                  process_options(options)
         
     | 
| 
       33 
34 
     | 
    
         | 
| 
       34 
35 
     | 
    
         
             
                  Axlsx::Package.new do |pack|
         
     | 
| 
       35 
36 
     | 
    
         
             
                    pack.use_shared_strings = true
         
     | 
| 
       36 
37 
     | 
    
         
             
                    workbook = pack.workbook
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
                    export_workbook workbook, ** 
     | 
| 
      
 39 
     | 
    
         
            +
                    export_workbook workbook, **origin_options
         
     | 
| 
       39 
40 
     | 
    
         | 
| 
       40 
41 
     | 
    
         
             
                    file_path = File.join(Rails.root, 'public', 'import')
         
     | 
| 
       41 
42 
     | 
    
         
             
                    FileUtils.mkdir_p(file_path) unless Dir.exist?(file_path)
         
     | 
| 
         @@ -47,42 +48,11 @@ module TalltyImportExport 
     | 
|
| 
       47 
48 
     | 
    
         
             
                end
         
     | 
| 
       48 
49 
     | 
    
         | 
| 
       49 
50 
     | 
    
         
             
                def export_workbook(workbook, **options)
         
     | 
| 
       50 
     | 
    
         
            -
                   
     | 
| 
       51 
     | 
    
         
            -
                   
     | 
| 
       52 
     | 
    
         
            -
                   
     | 
| 
       53 
     | 
    
         
            -
                   
     | 
| 
       54 
     | 
    
         
            -
                   
     | 
| 
       55 
     | 
    
         
            -
                  title3 = workbook.styles.add_style(alignment: alignment.merge(wrap_text: true), border: border, sz: 10)
         
     | 
| 
       56 
     | 
    
         
            -
                  _sheet_name = (respond_to?(:sheet_name) ? sheet_name : nil) || options[:sheet_name]
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                  header_obj = @headers
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                  workbook.add_worksheet(name: _sheet_name) do |sheet|
         
     | 
| 
       61 
     | 
    
         
            -
                    index = 0
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                    if respond_to?(:first_header)
         
     | 
| 
       64 
     | 
    
         
            -
                      row_index = Axlsx.col_ref(headers.size - 1)
         
     | 
| 
       65 
     | 
    
         
            -
                      sheet.merge_cells("A1:#{row_index}1")
         
     | 
| 
       66 
     | 
    
         
            -
                      sheet.add_row [first_header], style: title1, height: 30
         
     | 
| 
       67 
     | 
    
         
            -
                      index += 1
         
     | 
| 
       68 
     | 
    
         
            -
                    end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                    header_obj.header_lines.each do |header_line|
         
     | 
| 
       71 
     | 
    
         
            -
                      sheet.add_row(header_line.map(&:name), style: title2, height: 25)
         
     | 
| 
       72 
     | 
    
         
            -
                      index += 1
         
     | 
| 
       73 
     | 
    
         
            -
                    end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                    # 合并相同 header
         
     | 
| 
       76 
     | 
    
         
            -
                    header_obj.header_seq_to_axios.values.each do |axios_ary|
         
     | 
| 
       77 
     | 
    
         
            -
                      next unless axios_ary.count > 1
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                      top_right = [axios_ary.map(&:first).min, axios_ary.map(&:last).min]
         
     | 
| 
       80 
     | 
    
         
            -
                      bottom_left = [axios_ary.map(&:first).max, axios_ary.map(&:last).max]
         
     | 
| 
       81 
     | 
    
         
            -
                      sheet.merge_cells(
         
     | 
| 
       82 
     | 
    
         
            -
                        Axlsx.cell_r(top_right.first, top_right.last) + ':' + Axlsx.cell_r(bottom_left.first, bottom_left.last),
         
     | 
| 
       83 
     | 
    
         
            -
                      )
         
     | 
| 
       84 
     | 
    
         
            -
                    end
         
     | 
| 
       85 
     | 
    
         
            -
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
                  export_instance = TalltyImportExport::Export.new(@klass)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  opts = options.symbolize_keys.merge({ headers: @headers })
         
     | 
| 
      
 53 
     | 
    
         
            +
                  Rails.logger.info opts
         
     | 
| 
      
 54 
     | 
    
         
            +
                  export_instance.process_options(opts)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  export_instance.export_workbook(workbook, [], **opts)
         
     | 
| 
       86 
56 
     | 
    
         
             
                end
         
     | 
| 
       87 
57 
     | 
    
         | 
| 
       88 
58 
     | 
    
         
             
                def exchange_to_ids(xlsx_file, associations, **options)
         
     | 
| 
         @@ -136,7 +106,7 @@ module TalltyImportExport 
     | 
|
| 
       136 
106 
     | 
    
         | 
| 
       137 
107 
     | 
    
         
             
                def process_options(options)
         
     | 
| 
       138 
108 
     | 
    
         
             
                  options = import_options.merge(options).with_indifferent_access
         
     | 
| 
       139 
     | 
    
         
            -
                  @headers = options.delete(:headers) || import_headers
         
     | 
| 
      
 109 
     | 
    
         
            +
                  @headers = options.delete(:headers) || import_headers(**options)
         
     | 
| 
       140 
110 
     | 
    
         
             
                  @primary_keys = options.delete(:primary_keys) || @headers.map { |header| header[:primary_key] ? header[:key].to_sym : nil }.compact
         
     | 
| 
       141 
111 
     | 
    
         
             
                  @skip_keys = options.delete(:skip_keys) || @headers.map { |header| header[:skip] ? header[:key].to_sym : nil }.compact
         
     | 
| 
       142 
112 
     | 
    
         
             
                  @params = options
         
     | 
| 
         @@ -28,6 +28,10 @@ module TalltyImportExport 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  def exchange_to_ids xlsx_file, associations, **options
         
     | 
| 
       29 
29 
     | 
    
         
             
                    import_instance.exchange_to_ids(xlsx_file, associations, **options)
         
     | 
| 
       30 
30 
     | 
    
         
             
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def export_template_xlsx **options
         
     | 
| 
      
 33 
     | 
    
         
            +
                    import_instance.export_template_xlsx(**options)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
       31 
35 
     | 
    
         
             
                end
         
     | 
| 
       32 
36 
     | 
    
         
             
              end
         
     | 
| 
       33 
37 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: tallty_import_export
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - liyijie
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-11-22 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: zip-zip
         
     |