Riveran
@Riveran
Astartes

Как создать xls файл на основе массива js, exceljs?

Добрый день.

Я хочу создать xls файл с таблицей, в которой будет отображаться js объект при помощи библиотеки exeljs.
Почитал немного документация и написал вот такую функцию, которая на основе константы fakeData должна создать таблицу.

"use strict";

var Excel = require('exceljs');

exports.wrap = () => {
	const workbook = new Excel.Workbook();
	const worksheet = workbook.addWorksheet('Sensor Data');
	const fakeData =  {
		address: "well st",
		description: "180036710",
		fromTotal: 1.365
	};
	worksheet.addRow(fakeData)

	worksheet.columns = [
		{ header: 'address', key: 'address', width: 10 },
		{ header: 'description', key: 'description', width: 32, style: { font: { name: 'Arial Black' } } },
		{ header: 'fromTotal.', key: 'fromTotal', width: 10, style: { numFmt: 'dd/mm/yyyy' } }
	];

	return workbook.xlsx.writeFile("test.xlsx");
};


Вроде всё сделал верно, но функция не работает и скачивается пустой файл, может кто уже работал с этой либой и подскажет где я накосячил
  • Вопрос задан
  • 1377 просмотров
Решения вопроса 1
@TaF
Вы не учли сохранение(commit) и строку добавления ряда надо опустить ниже описания колонок. Рабочий вариант выглядит так:

"use strict";

var Excel = require('exceljs');

exports.wrap = () => {
  const workbook = new Excel.Workbook();
  const worksheet = workbook.addWorksheet('Sensor Data');
  const fakeData =  {
    address: "well st",
    description: "180036710",
    fromTotal: 1.365
  };
  worksheet.columns = [
    { header: 'address', key: 'address', width: 10 },
    { header: 'description', key: 'description', width: 32, style: { font: { name: 'Arial Black' } } },
    { header: 'fromTotal.', key: 'fromTotal', width: 10, style: { numFmt: 'dd/mm/yyyy' } }
  ];
  worksheet.addRow(fakeData).commit();
  return workbook.xlsx.writeFile("test.xlsx");
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
02 июн. 2024, в 01:13
2000 руб./за проект
01 июн. 2024, в 23:49
50000 руб./за проект
01 июн. 2024, в 23:20
30000 руб./за проект