上传excel并导入数据表

本文关键字:数据表 导入 excel 上传 | 更新日期: 2023-09-27 18:06:56

我正在尝试,用户从uploadcontrol中选择excel文件并上传或显示文件的完整路径/目录,因为我将解析文件并更新为datatable。

我的导入到数据代码在下面,我是如何解决这种情况的

项目开发使用asp.net 4.0,c#

public DataTable Import(String path){
Microsoft.Office.Interop.Excel.ApplicationClass app = new Microsoft.Office.Interop.Excel.ApplicationClass();
    Microsoft.Office.Interop.Excel.Workbook workBook = app.Workbooks.Open(path, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "'t", false, false, 0, true, 1, 0);
    Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.ActiveSheet;
    int index = 0;
    object rowIndex = 2;
    DataTable dt = new DataTable();
    dt.Columns.Add("FirstName");
    dt.Columns.Add("LastName");
    dt.Columns.Add("Mobile");
    dt.Columns.Add("Landline");

    DataRow row;
    while (((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, 1]).Value2 != null)
    {
        rowIndex = 2 + index;
        row = dt.NewRow();
        row[0] = Convert.ToString(((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, 1]).Value2);
        row[1] = Convert.ToString(((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, 2]).Value2);
        row[2] = Convert.ToString(((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, 3]).Value2);
        row[3] = Convert.ToString(((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, 4]).Value2);
        index++;
        dt.Rows.Add(row);
    }
    app.Workbooks.Close();
    return dt;
}

上传excel并导入数据表

正如Svick所说,您实际上并没有提出问题,但同时您可能想要调查使用ADO从Excel读取。Net,它将允许您在几个步骤中从Excel工作表创建数据集。或者可能有一个第三方组件可以读/写Excel表格(我想到了Flexcel和Gembox)。所有这些优点都是您不需要在运行应用程序的计算机上安装Excel。

使用GemBox。你可以很容易地完成这个任务。

下面是一个Excel c#代码示例:

ExcelFile ef = new ExcelFile();
ef.LoadXls(path);
DataTable dt = ef.Worksheets[0].CreateDataTable(ColumnTypeResolution.Auto);
return dt;