New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

table-renderer

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

table-renderer

convert table or spreadsheet data into an image

latest
Source
npmnpm
Version
0.1.30
Version published
Maintainers
1
Created
Source

table-renderer

convert table or spreadsheet data into an image

Background

One day, I had to build a slack slash command which reports marketing reports to our company slack channel. I wanted to format the command results look like table, but I could not find a simple way to do that. I decided to build a table-like view using markdown text, and struggled to do that. However, the layout was broken with small windows or with CJK charaters. So I decided to build the report as an image.

table-renderer

I hope this module will help someone who wants to convert a simple spreadsheet data into an image,

Install

npm install table-renderer canvas

node-canvas module is peer-dependency. You have to install it, too.

Examples

Usage

import path from 'path';
import TableRenderer, { saveImage } from 'table-renderer';

const renderTable = TableRenderer().render;

const canvas = renderTable({
	title: 'Marketing Summary',
	columns: [
		{ width: 200, title: 'Campaign', dataIndex: 'campaign' },
		{ width: 100, title: 'Install', dataIndex: 'install', align: 'right' },
		{ width: 100, title: 'Cost', dataIndex: 'cost', align: 'right' },
	],
	dataSource: [
		'-',
		{ campaign: 'Google CPC', install: '12', cost: '$ 400' },
		{ campaign: 'Facebook CPC', install: '3', cost: '$ 60' },
		{ campaign: 'Youtube Video', install: '131', cost: '$ 1,230' },
		'-',
		{ campaign: 'Total', install: '146', cost: '$ 1,690' },
	],
});

saveImage(canvas, path.join(__dirname, 'example.png'));

single table

API

TableRenderer

TableRenderer(options = {}) => ({ render: function });

options

  • cellWidth {number} default width for a table cell. default = 100
  • cellHeight {number} default height for a table cell. default = 40
  • offsetLeft {number} default text offset from left border of table cell. default = 8
  • offsetTop {number} default text offset from top border of table cell. default = 26
  • spacing {number} spacing between tables. default = 20
  • titleSpacing {number} spacing between title and a table. default = 10
  • fontFamily {string} default = 'sans-serif'
  • paddingVertical {number} vertical padding of a page. default = 0
  • paddingHorizontal {number} horizontal padding of a page. default = 0
  • backgroundColor {string} page background color. default = '#ffffff'

TableRenderer#render

render((tables: Object | Array)) => Canvas;

tables parameter is either Object or Array. Single table is comprised of title, columns, and dataSource, where title is optional. Parameters of render function resembles ant-design Table paramters.

The function returns Canvas object, which is an instance of node-canvas. So, you can add canvas operations to it.

render({
    title: 'Marketing Summary',
    columns: [...],
    dataSource: [...]
});

saveImage

saveImage((canvas: Canvas), (filepath: String)) => Promise;

Keywords

table

FAQs

Package last updated on 07 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts