"AutoSize"를 Excel 시트 열로 설정하는 방법(NPOI)
NPOI로 작성된 Excel 문서에서 열을 '자동 크기'로 설정하려면 어떻게 해야 합니까?제가 그랬어요.
foreach (DataColumn column in dataTable.Columns)
{
int rowIndex = 0;
foreach (DataRow row in dataTable.Rows)
{
HSSFRow dataRow = sheet.CreateRow(rowIndex);
dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
rowIndex++;
}
sheet.AutoSizeColumn(column.Ordinal);
}
하지만 효과가 없습니다.어떻게 하면 좋을까요?
여기 당신의 루프를 사용하여 나를 위해 작동하는 몇 가지 코드가 있습니다.
HSSFWorkbook spreadsheet = new HSSFWorkbook();
DataSet results = GetSalesDataFromDatabase();
//here, we must insert at least one sheet to the workbook. otherwise, Excel will say 'data lost in file'
HSSFSheet sheet1 = spreadsheet.CreateSheet("Sheet1");
foreach (DataColumn column in results.Tables[0].Columns)
{
int rowIndex = 0;
foreach (DataRow row in results.Tables[0].Rows)
{
HSSFRow dataRow = sheet1.CreateRow(rowIndex);
dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
rowIndex++;
}
sheet1.AutoSizeColumn(column.Ordinal);
}
//Write the stream data of workbook to the file 'test.xls' in the temporary directory
FileStream file = new FileStream(Path.Combine(Path.GetTempPath(), "test.xls") , FileMode.Create);
spreadsheet.Write(file);
file.Close();
이 방법이 사용자에게 효과가 없다면 밀어내는 데이터의 종류를 살펴보고 차이가 있는지 확인해야 합니다. (버전 불일치 등은 없는 것으로 가정합니다.)
Yellow Fog의 답변에 조금 더 추가하기 위해서입니다.모든 데이터를 시트에 추가한 다음 열을 반복하여 AutoSizeColumn(idx)을 설정해야 제대로 작동합니다.
언급URL : https://stackoverflow.com/questions/6055519/how-to-set-autosize-to-excel-sheet-column-npoi
'programing' 카테고리의 다른 글
jQuery를 사용하여 포인터에서 손가락으로 커서를 변경하는 방법은 무엇입니까? (0) | 2023.08.07 |
---|---|
jQuery를 사용하여 요소 ID의 콜론 처리 (0) | 2023.08.07 |
어떻게 하면 디브가 남은 수평 공간을 채우게 할 수 있습니까? (0) | 2023.08.07 |
도커 컨테이너는 몇 개의 CPU를 사용합니까? (0) | 2023.08.07 |
현재 실행 중인 PowerShell 스크립트의 경로 (0) | 2023.08.07 |