Я использую C # и подсветку электронных таблиц , чтобы экспортировать данные в Excel.мой код работает, но когда я открываю файл 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 можно ли с помощью электронных таблиц оценить формулу и показать правильное значение?если возможно, покажите мне путь, пожалуйста.
пожалуйста, посмотрите мой код и скажите, что мне нужно добавить или изменить в моем коде, так как формула результата должна быть оценена.спасибо