如何在 c# 中将数据从 Excel 导入到 asp.net 页中的数据集

本文关键字:net asp 数据集 导入 数据 Excel | 更新日期: 2023-09-27 18:35:07

我有一个 excel 工作表,其中包含超过 20,000 条记录的记录,我想以非常有效和快速的方式将这些数据放入数据集或数据表中,以便处理我的数据。 请有人知道如何使用 C# 代码执行此操作...

如何在 c# 中将数据从 Excel 导入到 asp.net 页中的数据集

public static DataSet exceldata(string filelocation)
{
DataSet ds = new DataSet();
 OleDbCommand excelCommand = new OleDbCommand();OleDbDataAdapter excelDataAdapter = new OleDbDataAdapter();
 string excelConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filelocation + ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
OleDbConnection excelConn = new OleDbConnection(excelConnStr);
excelConn.Open();
DataTable dtPatterns = new DataTable();excelCommand = new OleDbCommand("SELECT `PATTERN` as PATTERN, `PLAN` as PLAN FROM [PATTERNS$]", excelConn);
excelDataAdapter.SelectCommand = excelCommand;
excelDataAdapter.Fill(dtPatterns);
"dtPatterns.TableName = Patterns";
ds.Tables.Add(dtPatterns);
return ds;
}

我自己找到了答案。有一个叫Excel.dll [2.0.1.0] ExcelDataReader的dll。我没有链接,因为我是从我的一个朋友那里得到的。我想你可以从网上搜索它并下载exceldatareader.dll

IExcelDataReader iExcelDataReader = null;
FileInfo fileInfo = new FileInfo(FpdUnConLoanUpload.PostedFile.FileName);
string file = fileInfo.Name;
if (file.Split('.')[1].Equals("xls"))
{
    iExcelDataReader = ExcelReaderFactory.CreateBinaryReader(oStream);
}
else if (file.Split('.')[1].Equals("xlsx"))
{
    iExcelDataReader = ExcelReaderFactory.CreateOpenXmlReader(oStream);
}
iExcelDataReader.IsFirstRowAsColumnNames = true;
DataSet dsUnUpdated = new DataSet();
dsUnUpdated = iExcelDataReader.AsDataSet();
iExcelDataReader.Close();
if (dsUnUpdated != null)
{
}
else
{
    lblCmnMesage.Text = "No Data Found In The Excel Sheet!";
}

我想你对 20000 的计数感到惊讶。这不是一个很大的数字。可以使用 http://openxmldeveloper.org/高效地导入和处理,而无需依赖互操作。唯一的限制是你需要有xlsm格式的excel(Excel宏)