반응형
Excel 셀 형식을 "날짜와 같은" 데이터가 있는 텍스트로 유지
이것은 어리석어 보이지만, 저는 제 가치를 형식으로 얻을 수 없었습니다.#/####
Excel 내에서 날짜 형식이 아닌 리터럴 문자열로 씁니다.
ClosedX를 사용하고 있습니다.다음을 사용하여 Excel에 쓸 ML:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).DataType = XLCellValues.Text;
tableRow.Cell(1).Value = "2/1997";
// snip
셀에 있는 출력 엑셀 시트를 보고 있습니다.2/1/1997
코드에서 형식을 텍스트로 설정하더라도 엑셀 시트에서 "날짜"로 표시됩니다. 셀, 형식 셀을 마우스 오른쪽 버튼으로 클릭하여 "날짜"를 형식으로 보고 확인했습니다.
다음으로 변경할 경우:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).Value = "2/1997";
tableRow.Cell(1).DataType = XLCellValues.Text;
// snip
나는 대신에.35462
제 산출물로서
나는 단지 나의 문자 그대로의 가치를 원합니다.2/1997
워크시트에 표시됩니다.수정 방법에 대해 조언해 주십시오.
이것을 먹어보세요.
ws.Cell(rowCounter, colCounter).SetValue<string>(Convert.ToString(fieldValue));
ClosedXML에서는 잘 모르겠지만 Range(범위)를 사용해 보십시오.번호 형식(MSDN 링크)
예를 들면...
Range("A1").NumberFormat = "@"
또는
Selection.NumberFormat = "#/####"
고려 사항:
tableRow.Cell(1).Value = "'2/1997";
하나의 따옴표를 메모합니다.
ws.Cell(rowCounter, colCounter).Value="'"+Convert.ToString(fieldValue));
셀에 값을 쓰기 전에 포맷을 수행해야 합니다.
워크시트를 작성한 후 저장하기 직전에 실행하는 메커니즘은 다음과 같습니다.
private void SetColumnFormatToText(IXLWorksheet worksheet)
{
var wholeSheet = worksheet.Range(FirstDataRowIndexInExcel, StartCellIndex, RowCount, HeaderCount);
wholeSheet.Style.NumberFormat.Format = "@";
}
제가 셀에 값을 쓰기 전에 한 번만 하면 됩니다.
worksheet.Range(RowIndex, StartCellIndex, RowIndex, EndCellIndex).Style.NumberFormat.Format = "@";
언급URL : https://stackoverflow.com/questions/32203930/keep-excel-cell-format-as-text-with-date-like-data
반응형
'programing' 카테고리의 다른 글
파이썬에 아이덴티티 기능이 내장되어 있습니까? (0) | 2023.06.12 |
---|---|
Python을 사용하여 Excel 파일의 총 시트 수를 계산하는 방법 (0) | 2023.06.12 |
Python에서 함수 인수로 목록을 확장하는 방법 (0) | 2023.06.12 |
MariaDB에 Python Dict 삽입 중 오류 1064 발생 (0) | 2023.06.12 |
사전에서 데이터 프레임 오류: "모든 스칼라 값을 사용하는 경우 인덱스를 전달해야 합니다." (0) | 2023.06.12 |