Smartsheet - загрузка листа в виде файла Excel с использованием API

Я пытаюсь использовать Smartsheet API для загрузки листа в виде файла Excel. Я действительно изо всех сил пытаюсь собрать правильный код, чтобы сделать это.

Можете ли вы предоставить базовый пример кода, который будет загружать файл Excel с помощью API Smartsheet?

1 ответ

Решение

Документация по созданию файла Excel из листа находится здесь. Это дает пример, который использует curl. После установки curl можно использовать следующую команду, заменив полужирный шрифт соответствующими значениями:

curl https://api.smartsheet.com/1.1/sheet/SHEET_ID -H "Авторизация: Носитель ACCESS_TOKEN" -H "Принять: application / vnd.ms-excel" -o OUTPUT.XLS

SHEET_ID: это идентификатор листа. Его можно получить из интерфейса smartsheet (снимок экрана ниже), щелкнув правой кнопкой мыши вкладку листа и выбрав свойства. Его также можно получить через API, нажав конечную точку листов ( https://api.smartsheet.com/1.1/sheets). Более подробная информация о конечной точке здесь.

ACCESS_TOKEN: токен, который можно получить через интерфейс smartsheet, нажав "Аккаунт", выбрав "Личные настройки", а затем нажав "Доступ через API". Затем нажмите кнопку "Создать новый токен", чтобы создать новый токен.

OUTPUT.XLS: имя файла Excel, который будет создан в текущем каталоге.


Я также хочу отметить, что те же самые шаги можно выполнить с помощью Java SDK Smartsheet. После установки SDK следующий код можно использовать для загрузки листа в виде файла Excel.

public static void main(String[] args) throws SmartsheetException, IOException {
    // Setup the File object
    File file = new File("OUTPUT.XLS");

    // Create the file if it does not exist
    if(!file.exists()){
        file.createNewFile();
    }

    // Create the output stream from the File object
    FileOutputStream outputStream = new FileOutputStream(file, false);

    // Setup a Smartsheet object with the necessary access token
    Smartsheet smartsheet = new SmartsheetBuilder().setAccessToken("ACCESS_TOKEN").build();

    // Request the sheet as an excel file from smartsheet
    long sheetId = 8263950702798724L;// SHEET_ID
    smartsheet.sheets().getSheetAsExcel(sheetId, outputStream);

    // Flush and Close the output stream
    outputStream.flush();
    outputStream.close();
}

Снова замените SHEET_ID, ACCESS_TOKEN и OUTPUT.XLS соответствующими значениями.

Другие вопросы по тегам