예제 #1
0
    /// <summary>
    /// Excel转换成DataTable(.xls)
    /// </summary>
    /// <param name="filePath">Excel文件路径</param>
    /// <returns></returns>
    public static DataSet ExcelToDataTable(string filePath, string IsXls)
    {
        DataSet ds = new DataSet();
        //ds.Clear();
        DataTable dt = null;

        #region
        //DataTable dt = null;
        //DataSet ds = new DataSet();
        //using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
        //{
        //    if (IsXls == ".xlsx")
        //    {
        //        var hssfworkbook = new XSSFWorkbook(file);
        //        int inns = hssfworkbook.NumberOfSheets;
        //        for (int si = 0; si < inns; si++)
        //        {
        //            dt = new DataTable();
        //            var sheet = hssfworkbook.GetSheetAt(si);
        //            for (var j = 0; j < 100; j++)
        //            {
        //                dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
        //            }
        //            var rows = sheet.GetRowEnumerator();
        //            while (rows.MoveNext())
        //            {
        //                var row = (XSSFRow)rows.Current;
        //                DataRow dr = dt.NewRow();
        //                for (var i = 0; i < row.LastCellNum; i++)
        //                {
        //                    var cell = row.GetCell(i);
        //                    if (cell == null)
        //                    {
        //                        dr[i] = null;
        //                    }
        //                    else
        //                    {
        //                        switch (cell.CellType)
        //                        {
        //                            case CellType.Blank:
        //                                dr[i] = "";
        //                                break;
        //                            case CellType.Boolean:
        //                                dr[i] = cell.BooleanCellValue;
        //                                break;
        //                            case CellType.Numeric:
        //                                dr[i] = cell.ToString();
        //                                break;
        //                            case CellType.String:
        //                                dr[i] = cell.StringCellValue;
        //                                break;
        //                            case CellType.Error:
        //                                dr[i] = cell.ErrorCellValue;
        //                                break;
        //                            case CellType.Formula:
        //                                try
        //                                {
        //                                    dr[i] = cell.NumericCellValue;
        //                                }
        //                                catch
        //                                {
        //                                    dr[i] = cell.StringCellValue;
        //                                }
        //                                break;
        //                            default:
        //                                dr[i] = "=" + cell.CellFormula;
        //                                break;
        //                        }
        //                    }
        //                }
        //                dt.Rows.Add(dr);
        //            }
        //            ds.Tables.Add(dt);
        //        }
        //    }
        //    else
        //    {
        //        var hssfworkbook = new HSSFWorkbook(file);

        //        int inns = hssfworkbook.NumberOfSheets;
        //        for (int si = 0; si < inns; si++)
        //        {
        //            dt = new DataTable();
        //            var sheet = hssfworkbook.GetSheetAt(si);
        //            for (var j = 0; j < 100; j++)
        //            {
        //                dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
        //            }
        //            var rows = sheet.GetRowEnumerator();
        //            while (rows.MoveNext())
        //            {
        //                var row = (HSSFRow)rows.Current;
        //                DataRow dr = dt.NewRow();
        //                for (var i = 0; i < row.LastCellNum; i++)
        //                {
        //                    var cell = row.GetCell(i);
        //                    if (cell == null)
        //                    {
        //                        dr[i] = null;
        //                    }
        //                    else
        //                    {
        //                        switch (cell.CellType)
        //                        {
        //                            case CellType.Blank:
        //                                dr[i] = "";
        //                                break;
        //                            case CellType.Boolean:
        //                                dr[i] = cell.BooleanCellValue;
        //                                break;
        //                            case CellType.Numeric:
        //                                dr[i] = cell.ToString();
        //                                break;
        //                            case CellType.String:
        //                                dr[i] = cell.StringCellValue;
        //                                break;
        //                            case CellType.Error:
        //                                dr[i] = cell.ErrorCellValue;
        //                                break;
        //                            case CellType.Formula:
        //                                try
        //                                {
        //                                    dr[i] = cell.NumericCellValue;
        //                                }
        //                                catch
        //                                {
        //                                    dr[i] = cell.StringCellValue;
        //                                }
        //                                break;
        //                            default:
        //                                dr[i] = "=" + cell.CellFormula;
        //                                break;
        //                        }
        //                    }
        //                }
        //                dt.Rows.Add(dr);
        //            }
        //            ds.Tables.Add(dt);

        //        }
        //    }
        //}
        //return ds;
        #endregion

        #region new
        ExcelHelp eh    = new ExcelHelp(filePath);
        int       sheet = eh.ReturnSheetList().Count;
        for (int i = 0; i < sheet; i++)
        {
            dt = new DataTable();
            dt = eh.ExcelToDataTable(i);
            ds.Tables.Add(dt);
        }
        return(ds);

        #endregion
    }