设置google.visualization.DataTable的列宽

Set column width for google.visualization.DataTable

本文关键字:DataTable google visualization 设置      更新时间:2023-09-26

我想改变在google.visualization.DataTable列的宽度,但是,我不确定如何做到这一点。

提琴手: https://jsfiddle.net/dgbh6sL0/1/

<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['table']}]}"></script>
<div id="table_div"></div>

JS

google.setOnLoadCallback(drawTable);
  function drawTable() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('number', 'Salary');
    data.addColumn('boolean', 'Full Time Employee');
    data.addRows([
      ['Mike',  {v: 10000, f: '$10,000'}, true],
      ['Jim',   {v:8000,   f: '$8,000'},  false],
      ['Alice', {v: 12500, f: '$12,500'}, true],
      ['Bob',   {v: 7000,  f: '$7,000'},  true]
    ]);
    var table = new google.visualization.Table(document.getElementById('table_div'));
    table.draw(data, {showRowNumber: true, width: '100%', height: '100%'});
  }

  • "Name"列宽应为300px;
  • "Full Time Employee"列宽应为100px;

任何建议/帮助都是非常感谢的。

编辑

根据建议,以下是应用的解决方案:https://jsfiddle.net/dgbh6sL0/2/

您可以这样做:

data.setProperty(0, 0, 'style', 'width:300px');

另外,您需要在"draw"中添加"allowHTML",例如:

table.draw(data, {showRowNumber: true, width: '100%', height: '100%',allowHtml: true});

与此相关的是,你还可以通过覆盖标题单元格的white-space css来覆盖疯狂的一行标题:

table.draw(data, {showRowNumber: true, width: '100%', height: '100%',
    allowHtml: true, cssClassNames: {headerCell: 'normal-whitespace'}});

然后在CSS中添加:

.normal-whitespace {
  white-space: normal;
}
例如

https://jsfiddle.net/3j10g8n9/