私はNPOI ExcelのAutoSizeColumn()
をエクスポートしています。このSO questionから、DataTableをエクスポートしてExcelにエクスポートするときは、AutoSizeColumn()
を呼び出す前にすべてのデータを1つの列に書き込む必要があることを知っています。例:(などから、このSO answer:NPOIのエクスポートはすべての列を凌駕しますが、最後は空白になります
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();
私はTest.xlsをを開くと、唯一の最後の列が値を持っているすべてのものを以前のコラムでは、それには何も持っていません(各列のサイズを!しかし、調整されます。
FYI:1)私はhttps://www.dotnetperls.com/datatable からGetTable()のコードを使用します。2)私はC#を使用しています。