如何在Excel中找到隐藏的工作表名称
本文关键字:工作 隐藏 Excel | 更新日期: 2023-09-27 18:16:03
如何在c#中找到使用ADO(OLEDB)隐藏的excel工作表名称?
在我的Excel工作簿中有很多工作表。只有一个Excel工作表处于隐藏模式。我要找出隐藏床单的名字。我的代码发现隐藏和可见的表。
这是我的代码,以查找所有工作表的excel工作表名称。有没有人可以告诉我如何在不使用c#中的互操作服务的情况下找到隐藏的excel表格名称?
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile + ";Extended Properties='"Excel 12.0;;IMEX=1;HDR=YES'"";
query = String.Format("SELECT * FROM [{0}", fileName + "]");
OleDbCommand objCmd = new OleDbCommand(query, objCon);
OleDbDataAdapter adap = new OleDbDataAdapter(objCmd);
adap.FillSchema(dtExcelSchema, SchemaType.Mapped);
adap.Fill(dsExecelData);
这篇文章适合我
using Excel = Microsoft.Office.Interop.Excel;
...
Excel.Application xlAppSource = null;
Excel.Workbook xlWorkBookSource = null;
// workbook
xlWorkBookSource = xlAppSource.Workbooks.Open(xlsFilePath, 0, false, 5, null, null, false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, null, true, false, 0, true, false, false);
// here is your list
List<int> list = getHiddenSheetsIndexes(xlWorkBookSource.Worksheets);
...
private List<int> getHiddenSheetsIndexes(Excel.Sheets sheets)
{
// return
List<int> indexes = new List<int>();
int index = 0;
foreach (Excel.Worksheet sheet in sheets)
{
index++;
if (sheet.Visible == Microsoft.Office.Interop.Excel.XlSheetVisibility.xlSheetHidden)
indexes.Add(index);
}
// return
return indexes;
}
如果工作表名称以下划线(_)结尾,则将其隐藏。常规工作表名称将以美元符号($)结尾。