我觉得请问一下,Excel假如要上传入Database,必须先转为 DataTable吗?
我搜了一些材料全是先 Excel → DataTable → Database(sql)
我对DataTable并并不是很熟,这几天逐渐学,我想问一下有别的方式 吗?
如果有别的方式 请要我参照,麻烦了,感谢
下列就是我读Excel to DataTable
但是为了更好地确定,用Console.WriteLine读出是错码
模块是应用 NPOI
using System;
using System.Data;
using System.IO;
using System.Text;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
namespace Excel_to_DataTable
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
using(FileStream file = new FileStream(@"H:\ying\桌面上\test\LIST.xlsx", FileMode.Open,FileAccess.Read))
{
IWorkbook workbook = null;
workbook = new XSSFWorkbook(file);
ISheet sheet = workbook.GetSheetAt(0);
IRow row;
row = sheet.GetRow(0);
if (row != null)
{
for(int m = 0; m < row.LastCellNum; m )
{
string cellvalue = row.GetCell(m).ToString();
dt.Columns.Add(cellvalue);
}
}
for(int i = 1; i <= sheet.LastRowNum; i )
{
System.Data.DataRow dr = dt.NewRow();
row = sheet.GetRow(i);
if(row != null)
{
for(int j=0; j < row.LastCellNum; j )
{
string cellvalue = row.GetCell(j).ToString();
dr[j] = cellvalue;
}
}
dt.Rows.Add(dr);
}
file.Close();
foreach(DataRow roww in dt.Rows)
{
foreach (DataColumn col in dt.Columns )
{
Console.WriteLine(roww[col]);
}
}
Console.ReadLine();
}
}
}
}