C# NPOI 플러그인을 사용하는 HSSFWorkBook, 일반적인 구덩이
HSSFWorkBook.isReadOnly, 이상한 것 같지만 Excel 템플릿을 정상적으로 내보내는 데 영향을 주지 않습니다. 그러나 주의해야 할 것은 Excel 템플릿의 접두사 이름입니다.하면, 만약, 만약...xlsx, 그러면 파일 열기 오류가 발생합니다. 사실은 Excel 버전의 호환성 문제입니다.
때로는 HSSFRow sheetRow = (HSSFRow) sheet.CreateRow(index);새 row를 만들고 sheetRow를 사용합니다.CreateCell(2).SetCellValue(new HSSFRichTextString);모든 셀에 값을 부여할 때 문제가 발생할 수 있습니다.
for (int i=0; i)
{
HSSFRow sheetRow = (HSSFRow)sheet.CreateRow(4+i);
sheetRow.CreateCell(0).SetCellValue(new HSSFRichTextString(startDate.AddDays(i).ToString("yyyy-MM-dd")));// :2018-01-01
sheetRow.CreateCell(1).SetCellValue(new HSSFRichTextString(startDate.AddDays(i).ToString("dddd")));// 、 ......
// "", , cell null, ,Cells user
sheetRow.CreateCell(2).SetCellValue(new HSSFRichTextString(""));
sheetRow.CreateCell(3).SetCellValue(new HSSFRichTextString(""));
sheetRow.CreateCell(4).SetCellValue(new HSSFRichTextString(""));
}
코드에 3개의 셀의 값이 ""로 설정되어 있습니다. 만약 설정하지 않는다면 이 3개의 셀은 근본적으로null입니다. 게다가 사용자가 이 템플릿을 다운로드하면 어떤 셀은 값을 입력하고 어떤 셀은 입력하지 않습니다. 예를 들어
test1
test2
test3
test4
test5
test2
test4
test3
test1
test5
그러면 데이터를 읽을 때 첫 번째 줄의 Cells.Count==5, 두 번째, 네 번째 줄의 Cells.Count==2, 세 번째 줄의 Cells.Count==1, 다섯 번째 줄의 Cells.Count==0.코드에 빈 문자열을 설정하면 후속 사용자가 새로운 데이터를 입력했든 안 했든 관련 위치의 값을 가져올 수 있고 out of range의 이상이 발생하지 않습니다.
GetCell(index) 메서드를 사용하여 위치를 정확하게 찾습니다.
때때로 업로드된 excel 표의 값을 클라이언트에 표시하는 동시에 몇 개의 cell 값이 비어 있는지, 아니면null에 따라 제거해야 합니다. 만약에 정량적이지 않은 값이null인 Cell 개수가 나타나면 분명히 Cells [index]로는 안 됩니다. 위에서 언급한 Cells입니다.Count는null의 셀 칸을 통계하지 않습니다. 예를 들어 위의 두 번째 줄에 대해cells[0]의 값이test2일 수 있습니다. 어떻게 정확하게 셀의 위치를 찾을 수 있습니까?NPOI는 이에 대응하기 위해 셀 칸을 정확하게 찾을 수 있는 방법을 제공했다. 바로 GetCell(index)이다.그러면 GetCell(index)을 통해 상응하는 위치를 정확하게 찾을 수 있고 비어 있는지, null인지 판단한 다음에 선별, 값 부여 등 조작을 할 수 있다.
StringCellValue 메서드를 사용하면 일반적으로 셀 값을 추출하는 데 사용될 수 있습니다.
string resGp = sheet.GetRow(0).Cells[1].StringCellValue;
// ,sheet.GetRow(0).Cells[1] ,
// , ,
// StringCellValue
// StringCellValue, ,
string resGp = sheet.GetRow(0).Cells[1];
// , , , ToString()
string resGp = sheet.GetRow(0).Cells[1].ToString();
다음으로 전송:https://www.cnblogs.com/SysoCjs/p/9789791.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.