Ma table a 13 colonnes. Comment puis-je obtenir une largeur différente pour chaque colonne? Puis-je donner la largeur de chaque colonne comme ceci?
styles: {overflow: 'linebreak', columnWidth: [100,80,80,70,80,70,70,70,70,60,80,100]],
Ma table Syntaxe:
> var res = doc.autoTableHtmlToJson(document.getElementById(tableID));
> doc.autoTable(res.columns, res.data, { styles: {overflow: 'linebreak'
> ,columnWidth: [100,80,80,70,80,80,70,70,70,70,60,80,100]}, startY:
> 60, bodyStyles: {valign: 'top'}, });
Vous devriez transformer votre tableau columnWidth pour ressembler à ceci:
doc.autoTable({
html: document.getElementById(tableID)
columnStyles: {
0: {columnWidth: 100},
1: {columnWidth: 80},
2: {columnWidth: 80},
// etc
}
});
Notez l'utilisation de columnStyles
au lieu de styles
.
Dans la version précédente (1.3.4), cela aurait pu être comme ci-dessous:
var columns = [
{title: "Signum", dataKey: "signum"},
{title: "Name", dataKey: "name"},
{title: "Role", dataKey: "role"},
{title: "Location", dataKey: "location"}
]
Mais le dernier, à savoir 2.3.2, nécessite le format ci-dessous
doc.autoTable(colums,data,{
addPageContent:pageContent,
margin: {horizontal:5,top: 20},
startY: 0.47*doc.internal.pageSize.height,
styles: {overflow: 'linebreak'},
columnStyles: {
id: {columnWidth: 25},
name:{columnWidth:40},
role: {columnWidth: 15},
location: {columnWidth: 30}
}
});
Cela ne corrigera que l'id, le nom, le rôle et l'emplacement aux limites spécifiées. Les autres en-têtes seront ajustés en conséquence par autotable.js
Disons que [les étapes, les méthodes, les processus, les résultats obtenus] sont tous mes en-têtes de tableau.
columnStyles: {
steps: {columnWidth:215},
Methods: {columnWidth: 60},
process: {columnWidth: 100},
Delivers: {columnWidth: 90},
Result: {columnWidth: 90}
}
Ici, vous pouvez spécifier la largeur de chaque colonne.
Par défaut, les "styles de colonne" ne figurent pas dans "Options", vous devez le créer et définir ensuite la "largeur de colonne".
Options['columnStyles'] = {
0: {columnWidth: 50},
1: {columnWidth: 'auto'},
2: {columnWidth: 'wrap'},
3: {columnWidth: 150}
}
JSPDF.autoTable(columns, values, Options)