C# число в этой ячейке отформатировано как текст
Я использую C# и электронную таблицу для экспорта данных, чтобы превзойти. мой код работает, но когда я открываю файл Excel, я обнаружил, что это предупреждение отображается для большей части значения ячейки. предупреждающее сообщение номер в этой ячейке отформатирован как текст
перед сохранением данных в Excel, таким образом я устанавливаю формат для всего диапазона
SLStyle standardstyle = new SLStyle();
standardstyle.FormatCode = "#,##0.00";
sheet.SetCellStyle("A1", "E6", standardstyle);
но все равно не повезло. получить то же самое предупреждение после открытия файла xls.
Моя таблица данных содержит данные, такие как числовые данные, и немногие ячейки имеют формулу. Я хочу, чтобы оценить формулу по таблице света, если это возможно. если это невозможно, то я хочу сохранить данные в файл Excel с помощью таблицы. В результате Excel будет оценивать формулы, но в чем заключается моя ошибка, неясно, за что я получаю это предупреждение, число в этой ячейке отформатировано как текст, а формулы не являются вычисление, потому что числовые значения в ячейке становятся текстом вместо цифры.
Я пробовал таким образом
1) сначала я заполняю таблицу данных числовыми данными и формулами, а во второй фазе я загружаю эту таблицу данных при помощи света таблицы и устанавливаю код формата для всего диапазона и сохраняю эти данные, чтобы превзойти их при помощи света таблицы.
Когда я открываю файл Excel, сгенерированный светом электронной таблицы, я обнаружил, что предупреждение все еще там, и формула не оценивается. формула, показывающая 0 в качестве значения результата.
посмотрите на скриншот моей таблицы данных, в результате было бы понятно, как данные хранятся в таблице данных. Снимок экрана с таблицей данных
Первый набор кода
string strSum = "", strColName, strImmediateOneUp = "", strImmediateTwoUp = "";
int startsum = 0;
int currow = 0;
bool firstTimeSum = true;
int NumRows = 6;
int NumColumns = 5;
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
DataTable dt = new DataTable();
for (int col = 0; col < NumColumns; col++)
{
strColName = GenerateColumnText(col);
DataColumn datacol = new DataColumn(strColName, typeof(object));
dt.Columns.Add(datacol);
}
for (int row = 0; row < NumRows; row++)
{
dt.Rows.Add();
for (int col = 0; col < NumColumns; col++)
{
if (row < 2)
{
dt.Rows[row][col] = Convert.ToInt32(new Random().Next(1, NumRows));
}
else
{
if (firstTimeSum)
{
if (row - currow == 2)
{
currow = row;
startsum = 0;
firstTimeSum = false;
}
else
{
startsum = 1;
}
}
else
{
if (row - currow == 3)
{
currow = row;
startsum = 0;
}
}
if (startsum == 0)
{
strColName = GenerateColumnText(col);
strImmediateOneUp = strColName + ((row + 1) - 1).ToString();
strImmediateTwoUp = strColName + ((row + 1) - 2).ToString();
strSum = string.Format("=SUM({0}:{1})", strImmediateTwoUp, strImmediateOneUp);
dt.Rows[row][col] = strSum;
}
else
{
dt.Rows[row][col] = Convert.ToInt32(new Random().Next(1, NumRows));
}
}
}
startsum = 1;
}
Второй набор кода
SLThemeSettings stSettings = BuildTheme();
SLDocument sheet = new SLDocument(stSettings);
sheet.ImportDataTable(1, 1, dt, false);
//standard number format
SLStyle standardstyle = new SLStyle();
standardstyle.FormatCode = "#,##0.00";
sheet.SetCellStyle("A1", "E6", standardstyle);
sheet.SaveAs("d:\\SpreadsheetLight_formula.xlsx");
sheet.Dispose();
Мой желаемый результат будет оценка формулы и показать правильное значение в ячейке формулы. без сохранения данных в Excel можно ли с помощью электронных таблиц оценить формулу и показать правильное значение? если возможно покажи мне путь пожалуйста.
пожалуйста, посмотрите мой код и скажите, что мне нужно добавить или изменить в моем коде, так как формула результата должна быть оценена. Спасибо