У меня есть существующий код, который генерирует электронную таблицу из Excel с использованием OpenXML.Это работает нормально, но мне всегда нужно идти в таблицу и добавлять форматирование.
В любом случае, в моем коде C # я могу указать, что я хочу, чтобы столбец форматировался с определенным форматированием чисел) запятыми, десятичными числами и т. Д.?
любые ссылки на примеры были бы великолепны.
вот как я сейчас сохраняю данные:
public void SetCell<T>(string column, uint rowIndex, T value)
{
SheetData sheetData = _positionSheet;
Cell cell = GetCell(sheetData, column, rowIndex);
string stringValue = value == null ? "" : value.ToString();
cell.CellValue = new CellValue(stringValue);
switch (typeof(T).Name)
{
case "Date":
case "DateTime":
cell.DataType = CellValues.Date;
break;
case "Int32":
cell.DataType = CellValues.Number;
break;
default:
cell.DataType = CellValues.String;
break;
}
}
ниже приведен метод GetCell () (хотя я предполагаю, что это не очень актуально для вопроса:
static private Cell GetCell(SheetData sheet, string column, uint rowIndex)
{
Cell cell;
Row row = GetRow(sheet, rowIndex);
if (row.Elements<Cell>().Where(c => c.CellReference.Value == column + rowIndex).Any())
{
cell = row.Elements<Cell>().Where(c => c.CellReference.Value == column + rowIndex).First();
}
else
{
Cell refCell = null;
var comparer = new CellComparer();
foreach (Cell existingCell in row.Elements<Cell>())
{
if (comparer.Compare(existingCell.CellReference.Value, column + rowIndex) > 0)
{
refCell = existingCell;
break;
}
}
cell = new Cell { CellReference = column + rowIndex };
row.InsertBefore(cell, refCell);
}
return cell;
}