Skip to content

Latest commit

 

History

History
138 lines (109 loc) · 4.24 KB

File metadata and controls

138 lines (109 loc) · 4.24 KB
outline
2
3
title TABLE_FORMAT Annotation
titleTemplate NpgsqlRest
description Render PostgreSQL function results as HTML tables or Excel spreadsheet downloads instead of JSON. Per-endpoint table format control with dynamic placeholders.
head
meta
name content
keywords
npgsqlrest table format, html table rendering, excel download api, spreadsheet export, table_format annotation
meta
property content
og:title
NpgsqlRest TABLE_FORMAT Annotation
meta
property content
og:description
Render function results as HTML tables or Excel downloads with per-endpoint annotation control.
meta
property content
og:type
article

TABLE_FORMAT

Control how function results (from routines returning SETOF or TABLE) are rendered. Instead of JSON, results can be rendered as HTML tables or Excel spreadsheet downloads.

::: warning Applies to Set-Returning Functions Only Table format rendering only applies to routines that return SETOF or TABLE results. Scalar-returning functions are not affected. :::

::: warning Requires Configuration Table format rendering must be enabled in the Table Format Options configuration (TableFormatOptions.Enabled = true). :::

Syntax

@table_format = <format>
@excel_file_name = <filename>
@excel_sheet = <sheet_name>

All parameters support dynamic placeholders using the {param_name} format.

Parameters

Parameter Description
table_format Sets the table format renderer for the endpoint. Values: html (render as HTML table), excel (render as .xlsx download). If the value is not a recognized format, a warning is logged and the endpoint falls back to the default JSON response.
excel_file_name Sets the download filename for Excel table format output. Only applies when table_format is excel. If omitted, defaults to the routine name.
excel_sheet Sets the worksheet name for Excel table format output. Only applies when table_format is excel. If omitted, defaults to the routine name (max 31 characters).

Examples

Static HTML Table

create function get_report()
returns table (id int, name text, amount numeric)
language sql
begin atomic;
  select * from reports;
end;

comment on function get_report() is '
HTTP GET
@table_format = html
';

Equivalent as a SQL file endpoint (sql/get-report.sql):

/*
HTTP GET
@table_format = html
*/
select id, name, amount from reports;

Static Excel Download

comment on function get_report() is '
HTTP GET
@table_format = excel
@excel_file_name = monthly_report.xlsx
@excel_sheet = Report Data
';

Dynamic Format Selection

Use function parameters as dynamic placeholders to let the caller choose the output format:

create function get_data(
    _format text,
    _excel_file_name text = null,
    _excel_sheet text = null
)
returns table (
    int_val int,
    text_val text,
    date_val date
)
language sql
begin atomic;
  select * from data;
end;

comment on function get_data(text, text, text) is '
HTTP GET
@table_format = {_format}
@excel_file_name = {_excel_file_name}
@excel_sheet = {_excel_sheet}
@tsclient_url_only = true
';

When called with ?format=html, renders an HTML table. When called with ?format=excel&excelFileName=report.xlsx, returns an Excel download.

::: tip Use with tsclient_url_only Table format endpoints are typically consumed via browser navigation (opening a URL directly), not via fetch. Use @tsclient_url_only = true to generate only the URL builder in the TypeScript client. :::

Related

Related Annotations

  • TSCLIENT - Control TypeScript client generation (use tsclient_url_only for table format endpoints)

See Also