diff --git a/demo/demo41.ts b/demo/demo41.ts new file mode 100644 index 0000000000..fa573b674b --- /dev/null +++ b/demo/demo41.ts @@ -0,0 +1,48 @@ +// Multiple cells merging in the same table +// Import from 'docx' rather than '../build' if you install from npm +import * as fs from "fs"; +import { Document, Packer, Paragraph } from "../build"; + +const doc = new Document(); + +const table = doc.createTable(13, 6); +let row = 0; +table.getCell(row, 0).addContent(new Paragraph("0,0")); +table.getCell(row, 1).addContent(new Paragraph("0,1")); +table.getCell(row, 3).addContent(new Paragraph("0,3")); +table.getCell(row, 4).addContent(new Paragraph("0,4")); +table.getRow(row).mergeCells(4, 5); +table.getRow(row).mergeCells(1, 2); +row = 1; +table.getCell(row, 0).addContent(new Paragraph("1,0")); +table.getCell(row, 2).addContent(new Paragraph("1,2")); +table.getCell(row, 4).addContent(new Paragraph("1,4")); +table.getRow(row).mergeCells(4, 5); +table.getRow(row).mergeCells(2, 3); +table.getRow(row).mergeCells(0, 1); + +row = 2; +table.getCell(row, 0).addContent(new Paragraph("2,0")); +table.getCell(row, 1).addContent(new Paragraph("2,1")); +table.getCell(row, 2).addContent(new Paragraph("2,2")); +table.getCell(row, 3).addContent(new Paragraph("2,3")); +table.getCell(row, 4).addContent(new Paragraph("2,4")); +table.getRow(row).mergeCells(4, 5); +table.getRow(row).mergeCells(1, 2); +row = 3; +table.getCell(row, 0).addContent(new Paragraph("3,0")); +table.getCell(row, 1).addContent(new Paragraph("3,1")); +table.getCell(row, 2).addContent(new Paragraph("3,2")); +table.getCell(row, 3).addContent(new Paragraph("3,3")); +table.getCell(row, 4).addContent(new Paragraph("3,4")); +table.getCell(row, 5).addContent(new Paragraph("3,5")); +row = 4; +table.getCell(row, 0).addContent(new Paragraph("4,0")); +table.getCell(row, 5).addContent(new Paragraph("4,5")); +table.getRow(row).mergeCells(0, 4); + +const packer = new Packer(); + +packer.toBuffer(doc).then((buffer) => { + fs.writeFileSync("My Document.docx", buffer); +}); diff --git a/src/file/table/table.ts b/src/file/table/table.ts index 8311b5ecfd..8af223bc51 100644 --- a/src/file/table/table.ts +++ b/src/file/table/table.ts @@ -32,7 +32,7 @@ export class Table extends XmlComponent { table will make it look reasonable, as the layout algorithm will expand columns to fit its content */ - gridCols.push(1); + gridCols.push(100); } this.grid = new TableGrid(gridCols); }