[英]How can I get Excel cells to “right-size” to their content?
我希望使用C#填充的Excel電子表格單元格能夠擴展或收縮,以便顯示所有內容而無需手動調整單元格的寬度-以“恰好”的寬度顯示以顯示數據-不能多也不少。
我嘗試了這個:
_xlSheet = (MSExcel.Excel.Worksheet)_xlSheets.Item[1];
_xlSheet.Columns.AutoFit();
_xlSheet.Rows.AutoFit();
...但是在我當前的項目中什么也沒做(它在不包含范圍的小型POC沙箱應用中可以正常工作)。 說到范圍,這種方法不起作用的原因可能與我創建像這樣的單元格范圍有關:
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;
...然后在此之后添加“普通” /通用單單元格值。
換句話說,我的值跨越多列-幾行。 然后,在此之下,我恢復為“一個單元格,一個值”模式。
這是問題嗎?
如果是這樣,我該如何解決?
電子表格的獨立部分是否可以設置其格式(自動調整)不受工作表其他部分影響的部分?
至於獲取多行以容納一個值,我正在使用以下代碼:
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;
}
...這就是它的成就:
畢竟,“自動調整”是需要的,但關鍵是在其他所有操作完成后的正確時間調用它。 否則,后續操作可能會失去自動擬合的能力。
如果我正確地理解了您的要求,那么您正在尋找自動換行的語言……至少這是官方用語……
xlWorkSheet.Range["A4:A4"].Cells.WrapText = true;
這是文檔: https : //msdn.microsoft.com/zh-cn/library/office/ff821514.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.