C# - DataTable to Excel - DataTable轉Excel/DataTable輸出Excel DataSet
C# - DataTable to Excel - DataTable轉Excel/DataTable輸出Excel DataSet
DataTable/DataSet直接輸出成Excel
這邊有使用NPOI,記得要裝
如果用新版的VS2019開發會自動提示可以一鍵安裝
using NPOI;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
方法給大家直接套
DataTable
public void DataTableToExcelFile(DataTable dt)
{
IWorkbook wb = new HSSFWorkbook();
ISheet ws;
//IWorkbook wb = new XSSFWorkbook();
//ISheet ws;這邊自行選擇要新版或舊版的excel,記得改了的話下面輸出副檔名也要改
if (dt.TableName != string.Empty) { ws = wb.CreateSheet(dt.TableName); } else { ws = wb.CreateSheet("Sheet1"); }
ws.CreateRow(0);
for (int i = 0; i < dt.Columns.Count; i++)
{
ws.GetRow(0).CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
for (int i = 0; i < dt.Rows.Count; i++)
{
ws.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count; j++)
{
ws.GetRow(i + 1).CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
}
}
FileStream file = new FileStream(@"檔案路徑以及檔案名稱"+ ".xls", FileMode.Create);
wb.Write(file);
file.Close();
}
DataSet
public void DataSetToExcelFile(DataSet ds)
{
IWorkbook wb = new HSSFWorkbook();
ISheet ws;
////建立Excel 2007檔案
//IWorkbook wb = new XSSFWorkbook();
//ISheet ws; 這邊自行選擇要新版或舊版的excel,記得改了的話下面輸出副檔名也要改
for (int h = 0; h < ds.Tables.Count; h++)
{
DataTable dt = ds.Tables[h];
if (dt.TableName != string.Empty)
{
ws = wb.CreateSheet(dt.TableName);
}
else
{
ws = wb.CreateSheet("Sheet1");
}
ws.CreateRow(0);
for (int i = 0; i < dt.Columns.Count; i++)
{
ws.GetRow(0).CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
for (int i = 0; i < dt.Rows.Count; i++)
{
ws.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count; j++)
{
ws.GetRow(i + 1).CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
}
}
}
FileStream file = new FileStream(@"檔案路徑以及檔案名稱" + ".xls", FileMode.Create);
wb.Write(file);
file.Close();
}
留言
張貼留言