private List<VariableIdentifier> GetSubmitedVariableIdentifier(WorksheetPart worksheetPart, int startRow, int endRow)
{
//NEW OPENXMLREADER
if (this.SubmitedVariableIdentifiers == null || this.SubmitedVariableIdentifiers.Count == 0)
{
OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);
int rowNum = 0;
// read variable rows to get name and id from area variable
while (reader.Read())
{
if (reader.ElementType == typeof(Row))
{
do
{
if (reader.HasAttributes)
rowNum = Convert.ToInt32(reader.Attributes.First(a => a.LocalName == "r").Value);
if (rowNum >= startRow && rowNum <= endRow)
{
Row row = (Row)reader.LoadCurrentElement();
if (row.Hidden == null) VariableIdentifierRows.Add(RowToList(row));
else if (row.Hidden != true) VariableIdentifierRows.Add(RowToList(row));
}
} while (reader.ReadNextSibling() && rowNum < endRow); // Skip to the next row
break;
}
}
// convert variable rows to VariableIdentifiers
if (VariableIdentifierRows != null)
{
foreach (List<string> l in VariableIdentifierRows)
{
//create headerVariables
if (SubmitedVariableIdentifiers.Count == 0)
{
foreach (string s in l)
{
VariableIdentifier hv = new VariableIdentifier();
hv.name = s;
SubmitedVariableIdentifiers.Add(hv);
}
}
else
{
foreach (string s in l)
{
int id = Convert.ToInt32(s);
int index = l.IndexOf(s);
SubmitedVariableIdentifiers.ElementAt(index).id = id;
}
}
}
}
}
if (this.SubmitedVariableIdentifiers != null) return this.SubmitedVariableIdentifiers;
else return null;
}