簡體   English   中英

C# Excel 互操作,在 Excel 中的單元格文本中放置換行符

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

VBVBA 中,我曾經使用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.

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