0

Я пытаюсь читать значения из электронных таблиц google.Чтение значений из таблицы

String range = "A1:20"; 
    ValueRange response = sheet.spreadsheets().values().get(spreadsheetId, range) 
      .execute(); 

    List<List<Object>> values = response.getValues(); 
    if (values == null || values.size() == 0) { 
     System.out.println("No data found."); 
    } else { 
     System.out.println("Name, Major"); 
     System.out.println(values); 
     for (List row : values) { 
      // Print columns A and E, which correspond to indices 0 and 4. 
      System.out.printf("%s\n", row.get(0)); 
     } 
    } 

У меня есть таблица с несколькими строками и столбцами. Мне нужно прочитать все данные, представленные на листе. Над кодом работает нормально и чтение 20 строк первого столбца, но я не могу установить значения переменных диапазона, чтобы автоматически читать все строки и столбцы из листа.

Кроме того, я хочу читать типы данных каждого столбца со значениями в формате json на сервере.

+0

Я использовал значение диапазона как «1:30», которое возвращает мне все столбцы, но 30 строк. Пожалуйста, ребята, помогите мне установить значение диапазона, чтобы я получил все строки, присутствующие на листе. –

ответ

0

Если я правильно понять, вы хотите получить данные по всей поверхности листа с помощью getDataRange() здесь:

https://developers.google.com/apps-script/reference/spreadsheet/sheet#getDataRange()

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheets()[0]; 

// This represents ALL the data 
var range = sheet.getDataRange(); 

// This get the values 
var values = range.getValues(); 
+0

В соответствии с моим требованием мне нужны данные для вызова на сервере. Я дал код выше и мне нужно установить переменную диапазона с правильным значением, чтобы я получил все столбцы и строки в объект List. –

0

Если вам необходимо обратиться к листу от клиента то у меня есть этот код, который я часто использую. Обратите внимание, что лист должен быть опубликован и настроен на любого, у кого ссылка может быть просмотрена. Вам также понадобится jquery. Обратите внимание, как URL-адрес листа помещается в json. Заголовки столбцов получают префикс «gsx $», а затем устанавливаются в нижний регистр с удаленными пробелами.

//https://docs.google.com/spreadsheets/d/1OY18xmnT-O4AWzGDC63RvzzmNgyKHOnuvq-RX6M_6xw/edit#gid=0 
 

 
var spreadsheetID = "1OY18xmnT-O4AWzGDC63RvzzmNgyKHOnuvq-RX6M_6xw"; 
 
var url = "https://spreadsheets.google.com/feeds/list/" + spreadsheetID + "/1/public/values?alt=json"; 
 
$.getJSON(url, function(incomingData) { 
 
\t data = incomingData; 
 
    var entry = data.feed.entry; 
 
    showData(entry) 
 
}); 
 

 
function showData(entry){ 
 
    for (var items in entry){ 
 
\t \t console.log(entry[items].gsx$fruit.$t +": "+ entry[items].gsx$number.$t) 
 
} 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
    <script src="https://code.jquery.com/jquery-3.1.0.js"></script> 
 
    
 
</head> 
 
<body> 
 

 
</body> 
 
</html>

+0

Я ценю ваше решение. Но согласно моему требованию, мне нужны данные, которые будут вызываться на сервере. Я дал код выше, и мне нужно установить переменную диапазона с правильным значением, чтобы я получил все столбцы и строки в объект List. –

0

Смотрите полный код на Simple Mail Merge учебник хороший способ считывания данных. Особенно это касается функции getRowsData(). Он будет считывать все данные подряд.

Для вашего диапазона первые 3 строки вышеуказанного кода доставят вам то, что вам нужно. Я изменил их немного ниже, чтобы получить диапазон, представляющий весь лист1:

var ss = SpreadsheetApp.openById(spreadsheetId); 
var dataSheet = ss.getSheetByName('Sheet1'); 
var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, 4); 
Смежные вопросы