• ASP.NET如何获取Excel的所有Sheet名称?
  • 发布于 2个月前
  • 216 热度
    2 评论

最近有个加班系统客户要求能实现通过Excel批量导入的功能,因为这些数据可能存在好几个Sheet中,同时每个人上传的Excel用户都有可能会自己重命名Sheet1名称,所以我需要在用户导入数据前先检查一下用户上传的Excel的Sheet名称和我们系统规定的名称是否一致,如果不一致,则要给用户一个提示,让用户按系统规定的命名规则去命名Sheet名称,那么在ASP.NET中该如何获取Excel的所有Sheet名称?比如,我有如下一个Excel,我如何获取Sheet1,Sheet2,Sheet3的名称?


用户评论
  • 京东叮咚
  • 通过OleDbConnection对象的GetOleDbSchemaTable方法就可以实现了,具体如下:

            /// <summary>
            /// 返回Excel工作表名
            /// </summary>
            /// <param name="connection">excel连接</param>
            /// <returns></returns>
            public static List<string> GetExcelTablesName(OleDbConnection connection)
            {
                List<string> list = new List<string>();
                if (connection.State == ConnectionState.Closed)
                    connection.Open();
                DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                if (dt != null && dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (dt.Rows[i][2] != null)
                            list.Add(dt.Rows[i][2].ToString());
                    }
                }
                return list;
            }

  • 2018/5/18 13:51:00 [ 0 ] [ 0 ] 回复