gpt4 book ai didi

javascript - 如何使用 DOCX.JS 设置列大小

转载 作者:行者123 更新时间:2023-12-02 22:17:35 33 4
gpt4 key购买 nike

我正在使用 Electron 和 React 创建一个应用程序,我需要动态创建一个 Word 文本文档,我找到了一个很棒的包 DOCX,但是我需要创建一些表格,并且我无法设置列,我需要帮助设置列的大小,遵循代码摘录和文档链接 https://docx.js.org/#/

// eslint-disable-next-line
import { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, VerticalAlign, HeadingLevel } from 'docx';
const {dialog} = window.require('electron').remote;
const app = window.require('electron').remote
const fs = app.require('fs');

const doc = new Document();

export default function createDocx(){

const table = new Table({
rows: [
new TableRow({
children: [
new TableCell({
children: [new Paragraph({}), new Paragraph({})],
verticalAlign: VerticalAlign.CENTER,
}),
new TableCell({
children: [new Paragraph({}), new Paragraph({})],
verticalAlign: VerticalAlign.CENTER,
}),
],
}),
new TableRow({
children: [
new TableCell({
children: [
new Paragraph({
text:
"Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah",
heading: HeadingLevel.HEADING_1,
}),
],
}),
new TableCell({
children: [
new Paragraph({
text: "This text should be in ",
}),
],
verticalAlign: VerticalAlign.CENTER,
}),
],
}),
],
});
doc.addSection({
properties: {},
children: [
table
],
});

var options = {
title: "Save file",
defaultPath : "my_filename",
buttonLabel : "Save",

filters :[
{name: 'docx', extensions: ['docx',]},
{name: 'txt', extensions: ['txt',]},
{name: 'All Files', extensions: ['*']}
]
}


// Used to export the file into a .docx fil
dialog.showSaveDialog(options, (fileName) => {
if (fileName === undefined){
console.warn("You didn't save the file");
return;
}
}).then(result => {
const filename = result.filePath;
Packer.toBuffer(doc).then((buffer) => {
fs.writeFile(filename, buffer, (err) => {
if(err){
alert("Erro ao salvar o arquivo, causa: "+ err.message)
}else{
alert("Arquivo Salvo com Sucesso !!");
}
});
});
}).catch(err => {
alert(err)
})

}

最佳答案

您可能已经解决了这个问题。但对于其他寻找答案的人来说,这就是我所做的:

检查ITableCellOptions.width.WidthType以获取更多选项

const columnTitles = ["Title1", "Title2", "Title3"];

const columnTitleRow = new TableRow({
children: columnTitles.map((title) => {
return new TableCell({
// Make all cells the same with over 100% of the available page width
width: { size: 100 / columnTitles.length, type: WidthType.PERCENTAGE },
children: [new Paragraph({ text: title })],
});
}),
});

关于javascript - 如何使用 DOCX.JS 设置列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59340849/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com