我怎样才能让Excel单元格“正确的大小”到他们的内容?
我希望使用C#填充的Excel电子表格单元展开或收缩,以便在不手动调整单元格宽度的情况下显示其所有内容 – 以“恰到好处”的宽度显示数据 – 不多不less。
我试过这个:
_xlSheet = (MSExcel.Excel.Worksheet)_xlSheets.Item[1]; _xlSheet.Columns.AutoFit(); _xlSheet.Rows.AutoFit();
…但它在我当前的项目中没有做任何事情(在没有范围的小POC沙盒应用程序中工作正常)。 说到范围,这个不起作用的原因可能与我创build单元格区域有关,如下所示:
var rowRngMemberName = _xlSheet.Range[_xlSheet.Cells[1, 1], _xlSheet.Cells[1, 6]]; rowRngMemberName.Merge(Type.Missing); rowRngMemberName.Font.Bold = true; rowRngMemberName.Font.Italic = true; rowRngMemberName.Font.Size = 20; rowRngMemberName.Value2 = shortName;
…然后添加“正常”/通用单元格值。
换句话说,我具有跨越多列的值 – 几行。 然后在下面,我回到“一格一格”的模式。
这是问题吗?
如果是的话,我该如何解决呢?
是否可以有一个电子表格的独立部分的格式(自动assembly)不受表格的其他部分的影响?
UPDATE
至于获得多行来容纳一个值,我使用这个代码:
private void AddDescription(String desc) { int curDescriptionBottomRow = curDescriptionTopRow + 3; var range = _xlSheet.Range[_xlSheet.Cells[curDescriptionTopRow, 1], _xlSheet.Cells[curDescriptionBottomRow, 1]]; range.Merge(); range.Font.Bold = true; range.VerticalAlignment = XlVAlign.xlVAlignCenter; range.Value2 = desc; }
…这是它完成的:
毕竟,AutoFit是需要的,但关键是要在适当的时候调用它 – 在所有其他操作完成之后。 否则,后续的操作可能会失去自动化。
如果我得到你所要求的正确的东西,你正在寻找包装文本…至less这是它的正式任期…
xlWorkSheet.Range["A4:A4"].Cells.WrapText = true;
这里是文档: https : //msdn.microsoft.com/en-us/library/office/ff821514.aspx