[RUBY] Häufig verwendete Prozesse in SpreadSheet

Einführung

Die Schritte zum Zugriff auf die Tabelle werden hier nicht beschrieben. Es fasst die Prozesse zusammen, die häufig beim Erstellen verschiedener Tools verwendet werden.

sheet.rb


class Sheet
    #Initialisieren Sie, indem Sie die ID des Blattes übergeben
    # sheet = Sheet.new('xxxxxxxxxxxxxxxxxx')
    #Verwenden Sie wie
    def initialize(sheet_key)
        @sheet_key = sheet_key
        @config_file = "path/to/google_drive_config.json"
        @session = GoogleDrive::Session.from_config(@config_file)
        begin
            @sheet = @session.spreadsheet_by_key(@sheet_key)
        rescue => e
            puts e.message
        end
        @ws = nil
    end

    #Stellen Sie das Blatt so ein, dass es beim Lesen und Schreiben verwendet wird
    # sheet = Sheet.new('xxxxxxxxxxxxxxxxxx')
    # sheet.setWorksheet('Blatt1')
    #Verwenden Sie wie
    def setWorksheet(sheet_name)
        @ws = worksheet(sheet_name.to_s)
    end

    #Überprüfen Sie, ob das Blatt vorhanden ist
    # exist_sheet = sheet.isExistWorksheet('Blatt1')
    #Verwenden Sie wie
    def isExistWorksheet(sheet_name)
        if self.worksheet(sheet_name).nil? then
            return false
        end
        return true
    end

    #Hash bei Verwendung eines Blattes wie einer Konfiguration oder einer Datenbank_key_Daten mit arr als Schlüssel_Machen Sie alle Liste Hash
    # hash_key_arr = [id, value, created_at]
    # data_list = [[1, 'hoge', '2020-01-01'], [2, 'hogehoge', '2020-01-02']]
    #Zu
    # [
    #    {id: 1, value: 'hoge', created_at: '2020-01-01'},
    #    {id: 2, value: 'hogehoge', created_at: '2020-01-02'}
    # ]
    #Es kehrt so zurück.
    def createHash(hash_key_arr, data_list)
        ret = []
        data_list.each{|data|
            tmp = {}
            hash_key_arr.each_with_index{|hash,index|
                tmp[hash] = data[index]
            }
            ret.push(tmp)
        }
        return ret
    end

    # getRange(start_row, start_col, end_row - start_row, end_col - start_col).getValues()
    #Gleichwertig.
    # start_row,start_Wenn col null ist, 1 bzw. end_row,end_num wenn col null ist_rows,num_Holen Sie sich als cols.
    def getData(start_row=nil, end_row=nil, start_col=nil, end_col=nil)
        ret = []
        if start_col.nil? then
            start_col = 1
        end
        if end_col.nil? then
            end_col = @ws.num_cols
        end
        if start_row.nil? then
            start_row = 1
        end
        if end_row.nil? then
            end_row = @ws.num_rows
        end
        for row_index in start_row..end_row do
            data = []
            for col_index in start_col..end_col do
                data.push(@ws[row_index, col_index])
            end
            ret.push(data)
        end
        return ret
    end

    # start_row,start_schreibe als Zelle, um col zu starten_Schreiben Sie mit Daten
    def writeData(start_row, start_col, write_datas)
        write_datas.each_with_index{|rows, row_index|
            rows.each_with_index{|col, col_index|
                @ws[start_row + row_index, start_col + col_index] = col
            }
        }
        @ws.save
    end

    #Holen Sie sich die Anzahl der letzten Zeilen
    def getLastRow
        @ws.num_rows
    end

    #Ermitteln Sie die Anzahl der letzten Spalten
    def getLastCol
        @ws.num_cols
    end

    #Arbeitsblatt nach Titel abrufen
    def worksheet(title)
        @sheet.worksheet_by_title(title)
    end

    #Erstellt durch Angabe eines Namens
    def add_worksheet(title, rows, cols)
        @sheet.add_worksheet(title, max_rows = rows, max_cols = cols)
    end

    #Eine Kopie machen
    def copy_worksheet(base, title)
        num_rows = 1000
        num_cols = 14
        new_sheet = add_worksheet(title, num_rows, num_cols)
        origin_data = worksheet(base)
        num_rows = origin_data.num_rows
        num_cols = origin_data.num_cols
        for row_index in 1..num_rows do
            for col_index in 1..num_cols do
                new_sheet[row_index, col_index] = origin_data[row_index, col_index]
            end
        end
        new_sheet.save
    end
end

Referenz

https://qiita.com/koshilife/items/4baf1804c585690fc295

Recommended Posts

Häufig verwendete Prozesse in SpreadSheet
Häufig verwendete Methoden in Active Record
Häufig verwendeter Docker-Compose-Befehl
Häufig verwendete Java-Generika
Zusammenfassung der häufig verwendeten Befehle in Rails und Docker
Die häufig verwendeten Bedienungshinweise von IntelliJ
Edelstein oft in Schienen verwendet
Schienenkonsole Häufig verwendete Operationen
Häufig verwendete Maven-Befehlssammlung
Häufig verwendete Syntaxbeispiele in Java
Über häufig verwendete Methoden in der Entwicklung
Test-API, die häufig in AssertJ verwendet wird
Zusammenfassung häufig verwendeter Docker-Befehle
Häufig verwendete Befehle für MySQL-Operationen
[Docker] Andere häufig verwendete (wahrscheinlich) Docker-Anweisungen
Ruby-Methoden, die häufig in Rails verwendet werden