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
https://qiita.com/koshilife/items/4baf1804c585690fc295
Recommended Posts