您好,出现此问题的原因比较复杂,如果您在本地使用了开发授权,您会发现此时本地的表现和通过URL访问的表现将会一致。
主要原因在于在没有授权的情况下,会生成一个授权页面,导出的Excel中默认会根据第一个Sheet页(无授权情况下即为授权页)的bodyFont作为Excel的bodyFont,而列宽会根据Excel的bodyFont计算,这就导致了无授权和有授权的情况下,bodyFont并不一致,进而导致列宽不一致的情况。
为了解决这个问题,您需要参考以下代码,遍历所有的Sheet页设置字体:
- var sheet = workbook.getActiveSheet();
- var style = sheet.getDefaultStyle();
- style.fontFamily = "微软雅黑";
- style.themeFont = null;
- sheet.setDefaultStyle(style);
- workbook.getNamedStyles().forEach(function(style){
- style.themeFont = null;
- style.fontFamily = "微软雅黑";
- });
- sheet.getNamedStyles().forEach(function(style){
- style.themeFont = null;
- style.fontFamily = "微软雅黑";
- })
复制代码 |