引言:Excel表格数据是经常出现在工程领域的数据分析中,导出Excel纯C#代码方法
开始:
1.添加引用
NPOI.dll
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
2.创建DataTable 方法
public static DataTable CreateTable()
{
string[] FiveHeader = { "ID", "班级", "职务", "姓名", "学号" };
DataTable dataTable = new DataTable("ExportData");//*新建一张表
foreach (string TemStr in FiveHeader)
{
DataColumn strNameColumn = new DataColumn();
strNameColumn.DataType = typeof(String);
strNameColumn.ColumnName = TemStr;
dataTable.Columns.Add(strNameColumn); //*建立五列数据
}
for (int i = 0; i < 10; i++)
{
DataRow rowData = dataTable.NewRow(); //*建立行数据
rowData["ID"] = i.ToString();
rowData["班级"] = "一班";
rowData["职务"] = "学生";
rowData["姓名"] = "猪小明";
rowData["学号"] = "2333-3333";
dataTable.Rows.Add(rowData);
}
return dataTable;
}
3.导出DataTable即ExportExcel
public static bool DataTableToExcel(DataTable dataTable)
{
bool result = false;
IWorkbook workbook = null;
FileStream fs = null;
IRow row = null;
ISheet sheet = null;
ICell cell = null;
try
{
if (dataTable != null && dataTable.Rows.Count > 0)
{
workbook = new HSSFWorkbook();
sheet = workbook.CreateSheet("Sheet1");
int rowCount = dataTable.Rows.Count;
int columnCount = dataTable.Columns.Count;
//设置列头
row = sheet.CreateRow(0);
for (int i = 0; i < columnCount; i++)
{
cell = row.CreateCell(i);
cell.SetCellValue(dataTable.Columns[i].ColumnName);
}
for (int i = 0; i < rowCount; i++)
{
row = sheet.CreateRow(i + 1);
for (int j = 0; j < columnCount; j++)
{
cell = row.CreateCell(j);
cell.SetCellValue(dataTable.Rows[i][j].ToString());
}
}
//保存路径
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel 工作簿 (*.xls)|*.xls";
string strName = null;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
strName = saveFileDialog.FileName;
}
using (fs = File.OpenWrite(@strName))
{
workbook.Write(fs);
result = true;
}
}
return result;
}
catch (Exception ex)
{
if (fs != null)
{
fs.Close();
}
return false;
}
}
技术群:1090519856