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

时间:2012-05-24 09:52:15

标签: c# excel

我有一张excel表,其中包含超过20,000条记录的记录,我希望以非常有效和快速的方式将这些数据输入数据集或数据表,以便处理我的数据。请任何人知道如何使用C#代码...

3 个答案:

答案 0 :(得分:3)

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;

}

答案 1 :(得分:2)

我自己找到了答案。有一个名为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!";
}

答案 2 :(得分:0)

我觉得你对计数20000感到惊讶。这不是一个重要的数字。您可以使用http://openxmldeveloper.org/有效地导入和处理,而不必依赖于互操作。只有约束才需要使用xlsm格式的Excel(Excel宏)