JS导出table到Excel时,使用ActiveXObject(“Excel.Application”)如何控制表格列宽?

IE浏览器导出Excel时,怎么设置表格列宽?
代码:

var curTbl = document.getElementById(tableId);
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var xlsheet = oWB.Worksheets(1);
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
sel.execCommand("Copy");
xlsheet.Paste();
var fname = oXL.Application.GetSaveAsFilename(name+".xls", "Excel Spreadsheets (*.xls), *.xls");
oWB.SaveAs(fname);
oWB.Close(savechanges = false);
oXL.Quit();
oXL = null;

网上搜索有说使用

xlsheet.ActiveSheet.Columns(startcol+":"+endcol).ColumnWidth = 22;

试了下不行,有异常,也试了下

xlsheet.Columns(startcol+":"+endcol).ColumnWidth = 22;

也不可以,请问怎么设置ColumnWidth?最好有什么方法可以设置为宽度自适应吗?(^o^) msdn上也搜索过,没有格式设置详细的解释。

阅读 5.8k
1 个回答

搜索后找到答案,如果有人遇见同样问题做个参考吧。

xlsheet.columns.AutoFit();

或者

var myRange = xlsheet.Range(xlsheet.Cells(2, 1), xlsheet.Cells(2, 7));
myRange.Columns.AutoFit();
myRange.Rows.AutoFit();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题