|
workbook.SetSeparators(';', ';'); |
Thanks Mohan,
I'm still doing something wrong because it is not working.
I'm using now workbook.SetSeparators(';', ';'); And below you can see that it is set properly:
But still I get this error:
Syncfusion.XlsIO.Implementation.Exceptions.ParseException: Unexpected token.Unexpected token type: Identifier, string value: at position 8. Formula: MIN(Y13;156)*Y$7, Position: 8
Thanks again for looking into this.
I managed to get it working. The problem was with the separator.
I use
workbook.SetSeparators(';', ';'); |
worksheet.Range[subtotalRows + 2, firstDateColumn, subtotalRows + 2, lastDateColumn].Formula = $"=IF(Y{subtotalRows + 1}=\"a\",MIN(Y{subtotalRows},156)*Y$7,MIN(Y{subtotalRows},Y{subtotalRows+1}/Y$8*156)*Y$7)/156";
Hi Mohan, Hope you are doing well. Can you help me to clarify the below thing.
Scenario: User has to enter the date in a cell at column A in a sheet with a format of DD.MM.YYYY(02.12.2024)
In order to set the conditional formatting, I have added the below piece of code.
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Excel2013;
IWorkbook workbook = application.Workbooks.Create(new string[] { "Students"});
workbook.SetSeparators(';', ',');
IWorksheet sheet = workbook.Worksheets["Students"];
workbook.Allow3DRangesInDataValidation = true;
private void Validation(IWorksheet sheet)
{
IConditionalFormats condition = sheet.Range["A3:A10000"].ConditionalFormats;
condition.BeginUpdate();
//Empty cell Rule
IConditionalFormat condition1 = condition.AddCondition();
condition1.StopIfTrue = true;
condition1.FormatType = ExcelCFType.Formula;
condition1.Operator = ExcelComparisonOperator.Equal;
condition1.FirstFormula = "=A3=\"\"";
//Rule set for . positions
IConditionalFormat condition2 = condition.AddCondition();
condition2.StopIfTrue = false;
condition2.FormatType = ExcelCFType.Formula;
condition2.Operator = ExcelComparisonOperator.Equal;
condition2.FirstFormula = "=RIGHT(LEFT(A3,3),1)<>\".\"";
condition2.BackColorRGB = Color.FromArgb(255, 204, 204);
condition2.FontColorRGB = Color.FromArgb(255, 0, 0);
IConditionalFormat condition3 = condition.AddCondition();
condition3.StopIfTrue = false;
condition3.FormatType = ExcelCFType.Formula;
condition3.Operator = ExcelComparisonOperator.Equal;
condition3.FirstFormula = "=RIGHT(LEFT(A3,6),1)<>\".\"";
condition3.BackColorRGB = Color.FromArgb(255, 204, 204);
condition3.FontColorRGB = Color.FromArgb(255, 0, 0);
condition.EndUpdate();
}
When i deploy this, am gettting below error
Syncfusion.XlsIO.Implementation.Exceptions.ParseException: Unexpected token.Unexpected token type: Identifier, string value: at position 14. Formula: RIGHT(LEFT(A3,3),1)<>".", Position: 14
at Syncfusion.XlsIO.Implementation.FormulaTokenizer.RaiseException(String msg, Exception ex)
at Syncfusion.XlsIO.Implementation.FormulaTokenizer.RaiseUnexpectedToken(String msg)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseExpression(Priority priority, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ExtractOperands(ExcelParseFormulaOptions options, ParseParameters arguments, ExcelFunction functionId)
at Syncfusion.XlsIO.Implementation.FormulaParser.CreateFunction(ExcelFunction functionId, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseFunction(Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseFirstOperand(Priority priority, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions& options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseExpression(Priority priority, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ExtractOperands(ExcelParseFormulaOptions options, ParseParameters arguments, ExcelFunction functionId)
at Syncfusion.XlsIO.Implementation.FormulaParser.CreateFunction(ExcelFunction functionId, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseFunction(Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseFirstOperand(Priority priority, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions& options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.ParseExpression(Priority priority, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaParser.Parse(String formula, Dictionary`2 indexes, Int32 i, ExcelParseFormulaOptions options, ParseParameters arguments)
at Syncfusion.XlsIO.Implementation.FormulaUtil.ParseString(String strFormula, IWorksheet sheet, Dictionary`2 indexes, Int32 i, Dictionary`2 hashWorksheetNames, ExcelParseFormulaOptions options, Int32 iCellRow, Int32 iCellColumn)
at Syncfusion.XlsIO.Implementation.ConditionalFormatImpl.set_FirstFormula(String value)
at Syncfusion.XlsIO.Implementation.ConditionalFormatWrapper.set_FirstFormula(String value)
Additionally, When I generate excel file in development it works fine and in deployed site it didnt.
Thanks.