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\n
XML을 사용합니다.을 사용하다공유 문자열을 포함하는 다른 XML 파일로 마이그레이션되었습니다.줄 바꿈이 포함된 셀은 파일 형식에 따라 다르게 처리되며 라이브러리는 이에 대해 알지 못할 수 있습니다.
Infragistics 솔루션에 관심이 있는 사람은 여기 있습니다.
사용하다
Environment.NewLine
휴대폰이 포장되어 있는지 확인합니다.
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을 편집할 수 있습니다.셀을 편집하여 텍스트 사이에 새 행을 지정한 후 저장합니다.나중에 편집기에서 파일을 열 수 있습니다. 그러면 새 행이 다음과 같이 표시됩니다.
한번 해봐...
"\n"을 써보셨나요? 아마 효과가 있을 겁니다.
언급URL : https://stackoverflow.com/questions/1176548/how-to-insert-programmatically-a-new-line-in-an-excel-cell-in-c
'programing' 카테고리의 다른 글
iPhone SDK: loadView와 viewDidLoad의 차이점은 무엇입니까? (0) | 2023.04.21 |
---|---|
테이블에 트리거가 있는 경우 OUTPUT 절과 함께 UPDATE를 사용할 수 없습니다. (0) | 2023.04.21 |
빌드 실패의 원인을 오류 또는 경고 없이 찾는 방법 (0) | 2023.04.21 |
Bash에서 두 부동소수점 숫자를 비교하려면 어떻게 해야 하나요? (0) | 2023.04.21 |
Apache POI와 함께 날짜가 있는 Excel 셀을 읽는 방법 (0) | 2023.04.21 |