选择Excel

时间:2016-02-22 17:25:09

标签: c# excel excel-interop

我有一张动态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解析,我仍然得到隐藏的列值。如果有人能指出我正确的方向。

谢谢!

0 个答案:

没有答案