Как вставить строковое значение в заданную ячейку с определенным адресом в OpenXML?
Например: я хочу вставить «Hello World» в столбец «AC» моей таблицы Excel.
У меня есть список словаря с данными строки Excel, и я делаю, как показано ниже.
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
int rowindex = 2;
foreach (Dictionary<string,string> _row in _ExcelRows)
{
Row row = new Row();
row.RowIndex = (uint)rowindex;
sheetData.Append(row);
foreach (KeyValuePair<string,string> pair in _row)
{
string CellAddressForCurrentAttribute = string.Empty;
if (_ExcelToCoeusMap.ContainsValue(pair.Key))
{
KeyValuePair<string, string> kvp = _ExcelToCoeusMap.Where(x => x.Value == pair.Key).FirstOrDefault();
if (_ExcelColumnsAddressMap.ContainsValue(kvp.Key))
CellAddressForCurrentAttribute = _ExcelColumnsAddressMap.Where(y => y.Value == kvp.Key).FirstOrDefault().Key;
Cell cell = row.Elements<Cell>().Where(c => c.CellReference.Value.Equals(CellAddressForCurrentAttribute,StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
cell.CellValue = new CellValue(pair.Value);
}
}
rowindex++;
Мои строки 1 и 2 будут иметь некоторую информацию заголовка, а строки данных начинаются с 3 (индекс 2)
Я правильно заполняю адрес ячейки в CellAddressForCurrentAttribute
, но когда нажимаю row.Elements<Cell>().Where(c => c.CellReference.Value.Equals(CellAddressForCurrentAttribute,StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
его возвращение null
.
Не уверен, что мне здесь не хватает