programing

C#의 Excel 셀에 새 행을 프로그래밍 방식으로 삽입하려면 어떻게 해야 합니까?

muds 2023. 4. 21. 21:33
반응형

C#의 Excel 셀에 새 행을 프로그래밍 방식으로 삽입하려면 어떻게 해야 합니까?

Aspose 라이브러리를 사용하여 Excel 문서를 만들고 있습니다.감방 어딘가에 텍스트의 두 부분 사이에 새 줄을 삽입해야 합니다.

"\r\n"을 시도했지만 작동하지 않고 셀에 두 개의 정사각형 기호만 표시됩니다.그러나 Alt+Enter 키를 눌러 같은 셀에 새 행을 만들 수 있습니다.

프로그래밍 방식으로 새 행을 삽입하려면 어떻게 해야 합니까?

Aspose Cells 포럼에서 다음을 수행합니다.셀에서 새 줄 문자를 사용하는 방법

텍스트를 제공한 후 셀의 IsTextWraped 스타일을 true로 설정해야 합니다.

worksheet.Cells[0, 0].Style.WrapText = true;
cell.Text = "your firstline<br style=\"mso-data-placement:same-cell;\">your secondline";

DB에서 텍스트를 가져오는 경우:

cell.Text = textfromDB.Replace("\n", "<br style=\"mso-data-placement:same-cell;\">");

Excel에서 사용하는 문자 코드를 삽입해야 합니다. IIRC는 10(10)입니다.


편집: 네, 여기 코드가 있습니다.다음 내용을 포함하는 셀을 작성함으로써 사용된 문자 코드가 실제로 10임을 확인할 수 있었습니다.

A

B

...이것을 선택하고 VBA 즉시창에서 다음을 수행합니다.

?Asc(Mid(Activecell.Value,2,1))

따라서 이 값을 VBA의 다른 셀에 삽입하기 위해 필요한 코드는 다음과 같습니다.

ActiveCell.Value = "A" & vbLf & "B"

(vbLf는 문자 코드 10이므로).

C#을 사용하고 있는 것은 알고 있습니다만, 컴파일 할 필요 없이 「인터랙티브하게」테스트를 실시할 수 있기 때문에, VBA에서 최초로 실시하는 것이, 조작 방법을 파악하는 것이 훨씬 쉬워집니다.C#에서 수행하는 작업은 VBA에서 수행하는 작업을 복제하는 것일 뿐이므로 거의 차이가 없습니다(C# interop 정보는 VBA와 동일한 기본 COM 라이브러리를 사용합니다).

이 경우 C#은 다음과 같습니다.

oCell.Value = "A\nB";

차이점을 찾아냅니다:-)


편집 2: 아아아아악!방금 글을 다시 읽었는데 당신이 아스포스 라이브러리를 사용하고 있더군요.미안해요, 그럼 전 전혀 모르겠어요.

에서는 UU+ Excel) U+000D U+000A(CR+LF,\r\nXML을 사용합니다.을 사용하다공유 문자열을 포함하는 다른 XML 파일로 마이그레이션되었습니다.줄 바꿈이 포함된 셀은 파일 형식에 따라 다르게 처리되며 라이브러리는 이에 대해 알지 못할 수 있습니다.

Infragistics 솔루션에 관심이 있는 사람은 여기 있습니다.

  1. 사용하다

    Environment.NewLine

  2. 휴대폰이 포장되어 있는지 확인합니다.

    dataSheet.Rows[i].Cells[j].CellFormat.WrapText = ExcelDefaultableBoolean.True;

용 스프레드시트 기어.NET은, 다음과 같이 실현합니다.

        IWorkbook workbook = Factory.GetWorkbook();
        IRange a1 = workbook.Worksheets[0].Cells["A1"];
        a1.Value = "Hello\r\nWorld!";
        a1.WrapText = true;
        workbook.SaveAs(@"c:\HelloWorld.xlsx", FileFormat.OpenXMLWorkbook);

"WrapText = true" - Excel은 이 기능이 없으면 텍스트를 래핑하지 않습니다.아마 Aspose도 비슷한 API를 가지고 있을 겁니다.

면책사항:SpreadsheetGear LLC를 소유하고 있습니다.

"\n"은 정상적으로 동작합니다.입력이 여러 줄 텍스트 상자에서 오는 경우 새 행 문자는 "\r\n"이 됩니다. 이 문자를 "\n"로 바꾸면 작동합니다.

PEAR 'Spreadsheet_Excel_Writer' 및 'OLE' 사용:

내가 얻을 수 있는 유일한 방법은\n"일하는 것은 세포를 만드는 것이었다.$format->setTextWrap();그 후, 「」를 사용합니다.\n"는 효과가 있습니다.

Chr(13)을 사용할 수 있습니다.그럼 그냥 Chr(34)로 포장해.Chr(34)는 큰따옴표입니다.

  • VB.Net의 예:
  • The ContactInfo = "
  • The ContactInfo = 트림(이메일) & chr(13)
  • The ContactInfo = TheContactInfo & Trim (ThePhone )& chr ( The Contact Info & Trim )
  • The ContactInfo = Chr(34) & The ContactInfo & Chr(34)

나에게 효과가 있었던 것:

worksheet.Cells[0, 0].Style.WrapText = true;
worksheet.Cells[0, 0].Value = yourStringValue.Replace("\\r\\n", "\r\n");

문제는 \r\n이 탈출했다는 것입니다.

E.Run runForBreak = new E.Run();

E.Text textForBreak = new E.Text() { Space = SpaceProcessingModeValues.Preserve };
textForBreak.Text = "\n";
runForBreak.Append(textForBreak);
sharedStringItem.Append(runForBreak);

사실 이건 정말 간단해요.

xml 버전의 excel을 편집할 수 있습니다.셀을 편집하여 텍스트 사이에 새 행을 지정한 후 저장합니다.나중에 편집기에서 파일을 열 수 있습니다. 그러면 새 행이 다음과 같이 표시됩니다.&#10;

한번 해봐...

"\n"을 써보셨나요? 아마 효과가 있을 겁니다.

언급URL : https://stackoverflow.com/questions/1176548/how-to-insert-programmatically-a-new-line-in-an-excel-cell-in-c

반응형