如下
public bool GenNpoiExcel(DataSet dsData, string strfileName)
{
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
int Ii, Jj, Kk;
NPOI.HSSF.UserModel.HSSFCell cell;
NPOI.HSSF.UserModel.HSSFRow Row;
for (Kk = 0; Kk < dsData.Tables.Count; Kk++)
{
// 新增試算表。
NPOI.HSSF.UserModel.HSSFSheet sheet = (NPOI.HSSF.UserModel.HSSFSheet)workbook.CreateSheet(dsData.Tables[Kk].TableName);
//插入資料值。
//Header
NPOI.HSSF.UserModel.HSSFRow rowItem = (NPOI.HSSF.UserModel.HSSFRow)sheet.CreateRow(0);
for (Ii = 0; Ii < dsData.Tables[Kk].Rows.Count; Ii++)
{
rowItem = (NPOI.HSSF.UserModel.HSSFRow)sheet.CreateRow(Ii);
for (Jj = 0; Jj < dsData.Tables[Kk].Columns.Count; Jj++)
{
rowItem.CreateCell(Jj).SetCellValue(dsData.Tables[Kk].Rows[Ii][Jj].ToString().Trim().Replace("\n", "\r\n").Replace(" ", "").Trim());
}
}
}
workbook.Write(ms);
string _folder = $@"{env.WebRootPath}" + configuration.GetValue<string>("AppSetting:tmp_folder");
if (!System.IO.Directory.Exists(_folder))
{
System.IO.Directory.CreateDirectory(_folder);
}
System.IO.File.WriteAllBytes(_folder + strfileName, ms.ToArray());
workbook = null;
ms.Close();
ms.Dispose();
return true;
}
要使用 env.WebRootPath 這個方法,要在建構子宣告
IConfiguration configuration;
Microsoft.AspNetCore.Hosting.IWebHostEnvironment env;
public RegALLComputerController(IConfiguration iConfig, Microsoft.AspNetCore.Hosting.IWebHostEnvironment ienv)
{
configuration = iConfig;
env = ienv;
}