我正在尝试使用setcolumnwidth在Excel 2010上设置列宽

时间:2018-10-03 07:14:17

标签: java apache-poi

我正在尝试使用POI将export const downloadPDF = (downloadLink, fileName, trackId, productId, historyId) => { return (dispatch) => { return request.doGetAuth(downloadLink).then(response => { let contentType = response.headers.get('content-type'); if (_.includes(contentType, 'application/json')) { return response.json(); } else { return response.blob(); } }).then(blobby => { if (!blobby.message) { const blob = new Blob([blobby], { type: 'application/pdf' }); if (isIos()) { if (!isCriOs()) { // For ios let url = window.URL.createObjectURL(blob); dispatch(downloadReadyAction(url, fileName)); } else { // if chrome let reader = new FileReader(); reader.onload = function(e) { dispatch(downloadReadyAction(reader.result, fileName)); } reader.readAsDataURL(blob); } } else { FileSaver.saveAs(blob, fileName); } } }).catch(err => { console.log('Problem downloading pdf from server ' + err) }) } } 的宽度设置为colunm,问题是宽度是原来的两倍,并且上面的函数只接受Int

我尝试使用setColumnWidth(rowindex, width),但该列中的居住空间仍然不足,我认为问题是excel和java之间的字体不匹配

代码

autosizecolumn

2 个答案:

答案 0 :(得分:1)

您不能将double值传递给setColumnWidth以及autosizecolumn,因为Apache POI的两种方法都接受int值作为参数。 Apache POI的方法: 1. autoSizeColumn(int列)    调整列宽以适合内容。 2. setColumnWidth(int columnIndex,int width)    设置宽度(以字符宽度的1/256为单位) 您可以参考https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html 有关更多详细信息。

答案 1 :(得分:0)

使用:

public static string value1 { get; set; } = "";

public static string value2 { get; set; } = "";

我不确定第二行是否必要,但是如果您在excel中手动更改列的宽度,它将自动设置CustomWidth = true。所以我只是添加它是为了安全。