本文介绍了如何将数据添加到GetOleDbSchemaTable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





以下函数返回excel文件的工作表名称。

 private List< string> ; GetExcelSheetName(OleDbConnection连接)
{
List< string> listSheetNames = new List< string>();
try
{
DataTable dtSheet = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);

foreach(dtSheet.Rows中的DataRow drSheet)
{
if(drSheet [TABLE_NAME]。ToString()。Contains($))//检查是否row包含'_xlnm#_FilterDatabase'或工作表名称(即工作表名称始终以$符号结尾)
{
listSheetNames.Add(drSheet [TABLE_NAME]。ToString());
}
}
}
catch(exception ex)
{
抛出新的异常(无法读取Excel工作表名称\\\
Details:+ ex.Message);
}
返回listSheetNames;
}





问题是,此功能仅适用于3张excel表。



我如何再添加一个表(excelsheet)到 GetOleDbSchemaTable



谢谢

John

解决方案



Hi,

The following function returns the sheet names of excel file.

private List<string> GetExcelSheetName(OleDbConnection connection)
        {
            List<string> listSheetNames = new List<string>();
            try
            {
                DataTable dtSheet = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                foreach (DataRow drSheet in dtSheet.Rows)
                {
                    if (drSheet["TABLE_NAME"].ToString().Contains("$"))//checks whether row contains '_xlnm#_FilterDatabase' or sheet name(i.e. sheet name always ends with $ sign)
                    {
                        listSheetNames.Add(drSheet["TABLE_NAME"].ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Could not read Excel sheet names\nDetails: " + ex.Message);
            }
            return listSheetNames;
        }



The problem is, this function is only working for 3 excel sheets.

How can I add one more table(excelsheet) to GetOleDbSchemaTable?

Thanks
John

解决方案



这篇关于如何将数据添加到GetOleDbSchemaTable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 08:25