[英]C# Excel interop, put a line break in the text of a cell in a Excel
我正在使用互操作編寫 Excel 工作表。 在工作表中,我需要將一組句子放入一個單元格中。 文本應采用換行方式。 我怎樣才能做到這一點?
提前致謝。
它是通過輸入"\\r\\n"
或Environment.NewLine
。 並且還必須記住使WrapText
屬性為true
以使換行符可見。
您可以按如下方式以編程方式向單元格添加樣式
worksheet.Cells.Style.WrapText = true;
Excel 單元格中的新行是 LF 字符,在 C# 中為“\\n”。 並且不要忘記將單元格的 WrapText 屬性設置為 TRUE。
Excel 單元格中的新行是 LF 字符,在 C# 中為"\\n"
。
在VB或VBA 中,我曾經使用vbCrLf
(區分大小寫)來分隔句子以分隔 Excel 單元格中的行,如下所示:
Dim myString As String
myString = "First sentence" & vbCrLf & "Second sentence"
ActiveCell.ForumulaR1C1 = myString
在C# 中,我相當有信心 VB 的vbCrLf
的 C# 等價物是"\\r\\n"
,因此:
myString = "First sentence\r\n" + "Second sentence"
我遇到過這個問題,但不同之處在於我無法訪問代碼中的工作表,因為我只將它傳遞給內存流,然后將文件創建為 .csv 類型。
foreach (var s in propertyValues)
streamWriter.WriteLine(s);
streamWriter.Flush();
memoryStream.Seek(0, SeekOrigin.Begin);
我從這里使用它。
subjExportData.FileStream = stream;
subjExportData.FileName = string.Format("SubjectExport_{0}.csv", DateTime.Now.ToString("ddMMyyyy_HHmm"));
所以這里設置文本或單元格換行的建議不是一個選項。 使用上面的答案讓它工作,並在文本/字符串前后加上雙引號。 替換是在句子內部也有雙引號時進行處理。 因此,此解決方案處理句子或段落中的換行、逗號和雙引號。
if (value.ToString().Contains("\n"))
{
value = value.ToString().Replace("\n", "\r\n");
sb.Append('"'+ value.ToString().Replace(@"""", @"""""") + '"'+ ",");
}
這個問題的答案是在要在excel單元格中顯示的字符串的前面和末尾添加一個“quot”。 在 C# 中,它類似於 (Convert.ToChar(34) + stringToExport + Convert.ToChar(34))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.