CString strTL, strBR;strTL.Format(L"%s%d", GetExcelColName(cd.nCol), cd.nRow);strBR = strTL;CRange rangeMerge = range.get_Range(_variant_t(strTL), _variant_t(strBR));rangeMerge.put_ColumnWidth(_variant_t((long)(20)));
宽度设置函数为 : put_ColumnWidth
一开始我在设置单元格宽度时,设置了同一行的多个单元格宽度为200,在保存excel时失败。 只设置一个单元格宽度为200时,发现长度特别长。
最后发现 excel的列宽并不是我认为的像素、mm等单位。 excel的列宽为 十分之一英寸,
也就是1个单位 = 2.54mm
excel 默认的列宽为8.08个单位,查看步骤为: 开始--》单元格--》格式--》列宽--》打开即看到
相当于excel单元格的列宽默认值为20.52mm
可以通过拖拽单元格的宽度看到每列的列宽是多少。
一定要把列宽设置在合理范围内,太大了肯定不行!
//没必要设置那么宽,太宽了,实际可能也就 20个单位
rangeMerge.put_ColumnWidth(_variant_t((long)(230)));