我有一张动态Excel工作表,其中隐藏了一些行和列。我无法分辨哪些行和哪些列在不断变化时被隐藏。我需要提取所有可见数据并创建行列表。 这就是我现在所拥有的:
Excel.Application excelApp = new Excel.Application();
excelApp.DisplayAlerts = false;
string cellValue = string.Empty;
string fileName = @"C:\Source\filename.xlsx";
CorpData datatest = new CorpData();
if (File.Exists(fileName))
{
excelApp.Workbooks.Open(fileName, true, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelApp.Workbooks[1].Sheets["Sheet1"];
Excel.Range usedRrange = excelWorkSheet.UsedRange.SpecialCells(Excel.XlCellType.xlCellTypeVisible);
int count = usedRrange.Count;
int rowCount = usedRrange.Count / usedRrange.Columns.Count;
foreach (Excel.Range area in usedRrange.Areas)
{
foreach (Excel.Range row in area.Rows)
{
string[] rowData = new String[7];
for (int j = 0; j < 7; j++)
{
Excel.Range rowRange = excelWorkSheet.Cells[row.Row, j + 1];
if (rowRange.Value2 != null)
{
rowData[j] = rowRange.Value2.ToString();
}
}
datatest.DataList.Add(new DataItem(rowData[0], rowData[1], rowData[2], rowData[3], rowData[4], rowData[5], rowData[6]));
}
}
}
这里的问题是我能够摆脱所有隐藏的行,但由于我通过所有列的主excel解析,我仍然得到隐藏的列值。如果有人能指出我正确的方向。
谢谢!