0

Java から Smartsheet API を使用してデータを読み取って、1 つの行のデータを含むレポートやラベルなど、さまざまな形式を作成しようとしています。

API サンプルが機能するように IDE (NetBeans) をセットアップしましたが、それらはすべて新しいシートの作成などに関するものであり、既存のシートの内容を読み取る方法がわかりません。

1行のコードでシート全体をJavaオブジェクトに読み込むことができると思っていましたが、それよりも複雑に見え、該当するドキュメントがどこにも見つかりません。Javadoc には、関連する ID をどこでどのように取得するか、包含オブジェクトまたは除外オブジェクトが実際に何を行うか、どれが必須かオプションかなどは記載されていません。

Java からシートの内容を読み取る例はありますか?

これが少し広い質問であることは知っていますが、私は完全に困惑しています。

4

2 に答える 2

2

ありがとうキム!

他の人にとっては、これが私のために働いたものです。このコードは、アカウント内のシートのリストを取得し、名前が「Specs -」で始まる内容を表示します。

import com.smartsheet.api.Smartsheet;
import com.smartsheet.api.SmartsheetBuilder;
import com.smartsheet.api.SmartsheetException;
import com.smartsheet.api.models.Cell;
import com.smartsheet.api.models.Column;
import com.smartsheet.api.models.PagedResult;
import com.smartsheet.api.models.Row;
import com.smartsheet.api.models.Sheet;
import com.smartsheet.api.oauth.Token;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;


public class SampleCode {

    /*
        Show the contenst of all sheets whose name starts with "Specs - "
    */
    public static void main(String[] args) {

        final String delimiter = ", ";

        // Create a Smartsheet object with our Access Token
        Token token = new Token();
        token.setAccessToken(Private.TOKEN);
        Smartsheet smartsheet = new SmartsheetBuilder().setAccessToken(token.getAccessToken()).build();

        //get a paged list of all Sheets, using null Source Inclusion & Pagination parameters
        PagedResult<Sheet> homeSheets = new PagedResult<>();
        try {
            homeSheets = smartsheet.sheetResources().listSheets(null, null);
        } catch (SmartsheetException ex) {
            Logger.getLogger(SampleCode.class.getName()).log(Level.SEVERE, null, ex);
        }
        // get a Java List<Sheet> from the PagedResult<Sheet>
        List<Sheet> sheetInfoList = homeSheets.getData();

        // Loop through each sheet in the list
        for (Sheet sheetInfo : sheetInfoList) {

            String sheetName = sheetInfo.getName();

            // Show data for all sheets with names that match our pattern
            if (sheetName.startsWith("Specs - ")) {

                // get the sheet object, with no optional includes or excludes
                Sheet theSheet = null;
                try {
                    theSheet = smartsheet.sheetResources().getSheet(sheetInfo.getId(), null, null, null, null, null, null, null);
                } catch (SmartsheetException ex) {
                    Logger.getLogger(SampleCode.class.getName()).log(Level.SEVERE, null, ex);
                }

                // Print the sheets name
                System.out.println("\nSheet: " + theSheet.getName() + "\n");

                // Print the column titles as a delimited line of text.
                List<Column> columnList = theSheet.getColumns();
                String columnHeader = null;
                for (Column col : columnList) {
                    columnHeader = columnHeader == null ? col.getTitle() : columnHeader + delimiter + col.getTitle();
                }
                System.out.println(columnHeader);

                // Print each row as a delimited line of text.
                List<Row> rowList = theSheet.getRows();
                for (Row row : rowList) {
                    List<Cell> cellList = row.getCells();
                    String rowOutput = null;
                    for (Cell cell : cellList) {
                        String cellOutput = Objects.toString(cell.getValue() != null ? cell.getValue() : cell.getDisplayValue());
                        rowOutput = rowOutput == null ? cellOutput : rowOutput + delimiter + cellOutput;
                    }
                    System.out.println(rowOutput);
                }
            }
        }
    }
}
于 2016-01-10T15:41:22.823 に答える