Nodejs - TextWrap в ячейке при экспорте данных в Excel - PullRequest
0 голосов
/ 06 июля 2018

Я использую пакет exceljs npm для форматирования таблицы исключений, но я не могу сделать перенос текста внутри ячейки, когда данные слишком велики. Ячейка "Мое описание" содержит большие данные при экспорте в Excel, похоже, что текст пересекается с следующей ячейкой.

          try {
           var workbook = new excel.Workbook();
           var worksheet = workbook.addWorksheet('ABC');

           worksheet.columns = [
            { header: 'ABC', key: 'ABC', width: 15 },
            { header: 'Description', key: 'Description', width: 20 },
            { header: 'Comments', key: 'Comments', width: 20 }
        ];
        // setStyleToHeader(worksheet);
        worksheet.getRow(1).font = { name: 'Calibri', family: 4, size: 12, bold: true };
        worksheet.getRow(1).border = {
            top: { style: 'thin' },
            left: { style: 'thin' },
            bottom: { style: 'thin' },
            right: { style: 'thin' }
        };
        new sql.ConnectionPool(dbconfig).connect().then(pool => {
            return pool.request()
               .execute('sp_getAll_data')
        }).then(result => {
            debugger;
            let rows = result.recordset;
            for (var i = 0; i < rows.length; i++) {
                worksheet.addRow({
                    ABC: rows[i].ABC,
                    Description: rows[i].Description ,
                    Comments: rows[i].Comments
                });
            }
            sql.close();
            workbook.xlsx.write(res);
            debugger;
            res.setHeader('Content-Type', 'application/vnd.openxmlformats');
            res.setHeader("Content-Disposition", "attachment; filename=" + "ABC.xlsx");
            res.end(result, 'binary');
            res.status(200).json();
        }).catch(err => {
            // res.status(500).send({ message: "${err}", err })
            // sql.close();
        });
    } catch (e) {

    }

1 Ответ

0 голосов
/ 06 июля 2018

Если вы хотите просто обернуть текст, вы можете использовать атрибут 'alignment' ячейки.

worksheet.getCell('D1').alignment = { wrapText: true };

Это уже упоминалось здесь на странице плагина: https://www.npmjs.com/package/exceljs#alignment

...