簡體   English   中英

如何使Excel單元格“調整大小”到其內容?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM