## Create structured sheet `client.StructuredSheets.New(ctx, body) (*StructuredSheetResponse, error)` **post** `/v1/structured-sheets` Start converting a spreadsheet workbook into structured data. This initiates an asynchronous conversion process. Poll the returned resource using the `id` to check completion status. ### Parameters - `body StructuredSheetNewParams` - `FileID param.Field[string]` The unique identifier of the file to convert. - `SheetNames param.Field[[]string]` List of sheet names to convert. If None, all sheets will be converted. ### Returns - `type StructuredSheetResponse struct{…}` Response representing a structured sheet conversion job. This is returned from POST (create), GET (retrieve), and list endpoints. - `ID string` The unique identifier for this structured sheet conversion. - `CreatedAt Time` The timestamp when the conversion was started. - `FileID string` The unique identifier for the source file. - `Object StructuredSheet` The object type, which is always 'structured_sheet'. - `const StructuredSheetStructuredSheet StructuredSheet = "structured_sheet"` - `Status StructuredSheetResponseStatus` The current processing status. - `const StructuredSheetResponseStatusQueued StructuredSheetResponseStatus = "queued"` - `const StructuredSheetResponseStatusInProgress StructuredSheetResponseStatus = "in_progress"` - `const StructuredSheetResponseStatusCompleted StructuredSheetResponseStatus = "completed"` - `const StructuredSheetResponseStatusFailed StructuredSheetResponseStatus = "failed"` - `const StructuredSheetResponseStatusCancelled StructuredSheetResponseStatus = "cancelled"` - `UpdatedAt Time` The timestamp when the conversion was last updated. - `LastError StructuredSheetResponseLastError` Error information when processing fails. - `Code string` A machine-readable error code. - `Message string` A human-readable description of the error. - `SheetNames []string` List of sheet names included in this conversion. - `TableCount int64` Number of tables extracted from the workbook. Only present when status is 'completed'. ### Example ```go package main import ( "context" "fmt" "github.com/deeptable-com/deeptable-go" "github.com/deeptable-com/deeptable-go/option" ) func main() { client := deeptable.NewClient( option.WithAPIKey("My API Key"), ) structuredSheetResponse, err := client.StructuredSheets.New(context.TODO(), deeptable.StructuredSheetNewParams{ FileID: "file_01h45ytscbebyvny4gc8cr8ma2", }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", structuredSheetResponse.ID) } ``` #### Response ```json { "id": "ss_01kfxgjd94fn9stqm42nejb627", "created_at": "2024-01-15T10:30:00Z", "file_id": "file_01kfxgjd94fn9stqm414vjb0s8", "object": "structured_sheet", "status": "completed", "updated_at": "2024-01-15T10:35:00Z", "last_error": { "code": "invalid_file_format", "message": "The uploaded file is not a valid Excel spreadsheet." }, "sheet_names": [ "Sheet1", "Financials" ], "table_count": 6 } ```