将excel转换为c#中的数据表?

将excel转换为c#中的数据表?,c#,C#,如何使用interop在c#中将excel转换为datatable。 转换excel时遇到问题。 我是网络新手。非常感谢您的帮助。您可以使用下面的函数将excel转换为datatable。您只需将excel路径传递到此函数,此函数将返回datatable: public DataTable READExcel(string path) { Microsoft.Office.Interop.Excel.Application objXL = null; Mi

如何使用interop在c#中将excel转换为datatable。 转换excel时遇到问题。
我是网络新手。非常感谢您的帮助。

您可以使用下面的函数将excel转换为datatable。您只需将excel路径传递到此函数,此函数将返回datatable:

public DataTable READExcel(string path)
    {
        Microsoft.Office.Interop.Excel.Application objXL = null;
        Microsoft.Office.Interop.Excel.Workbook objWB = null;
        objXL = new Microsoft.Office.Interop.Excel.Application();
        objWB = objXL.Workbooks.Open(path);
        Microsoft.Office.Interop.Excel.Worksheet objSHT = objWB.Worksheets[1];

        int rows = objSHT.UsedRange.Rows.Count;
        int cols = objSHT.UsedRange.Columns.Count;
        DataTable dt = new DataTable();
        int noofrow = 1;

        for (int c = 1; c <= cols; c++)
        {
            string colname = objSHT.Cells[1, c].Text;
            dt.Columns.Add(colname);
            noofrow = 2;
        }

        for (int r = noofrow; r <= rows; r++)
        {
            DataRow dr = dt.NewRow();
            for (int c = 1; c <= cols; c++)
            {
                dr[c - 1] = objSHT.Cells[r, c].Text;
            }

            dt.Rows.Add(dr);
        }

        objWB.Close();
        objXL.Quit();
        return dt;
    }
公共数据表READExcel(字符串路径)
{
Microsoft.Office.Interop.Excel.Application objXL=null;
Microsoft.Office.Interop.Excel.Workbook objWB=null;
objXL=新的Microsoft.Office.Interop.Excel.Application();
objWB=objXL.Workbooks.Open(路径);
Microsoft.Office.Interop.Excel.Worksheet objSHT=objWB.Worksheets[1];
int rows=objSHT.UsedRange.rows.Count;
int cols=objSHT.UsedRange.Columns.Count;
DataTable dt=新的DataTable();
int noofrow=1;

对于.Net core中的(int c=1;c),可以使用Syncfusion.XlsIO 安装软件包Syncfusion.XlsIO.Net.Core-版本17.2.0.49

    private DataTable ConvertExcelToDataTable(string path)
    {
            using (Stream inputStream = File.OpenRead(path))
            {
                using (ExcelEngine excelEngine = new ExcelEngine())
                {
                    IApplication application = excelEngine.Excel;
                    IWorkbook workbook = application.Workbooks.Open(inputStream);
                    IWorksheet worksheet = workbook.Worksheets[0];

                    DataTable dataTable = worksheet.ExportDataTable(worksheet.UsedRange, ExcelExportDataTableOptions.ColumnNames);
                    return dataTable;
                }
            }
    }

谢谢,很好用。