Пример #1
0
        private static void ParseCellValue(EmailModels email, EmailDataParsingRulesModels dataParsingRule, int row, bool CopyRuleFromPreviousOrder)
        {
            // AddLog("ParseCellValue");
            var path = SpreadsheetHelper.GetSpreadsheetPathById((long)dataParsingRule.TableId_Id);

            if (path != null)
            {
                var name = dataParsingRule.TableId_Id.ToString();

                SpreadsheetExtension.LoadDocument(name, path);
                IWorkbook workbook = SpreadsheetExtension.GetCurrentDocument(name);

                Worksheet worksheet = workbook.Worksheets[dataParsingRule.Worksheet];

                var value = BeforeParseValueFromEmail(email, dataParsingRule);
                if (value != null)
                {
                    if (dataParsingRule.IsUpdatingRule)
                    {
                        if (CopyRuleFromPreviousOrder)
                        {
                            worksheet.Cells[row, dataParsingRule.ColumnForUpdate].CopyFrom(worksheet.Cells[row + 1, dataParsingRule.ColumnForUpdate], PasteSpecial.Formats);
                        }
                        worksheet.Cells[row, dataParsingRule.ColumnForUpdate].Value = value.Replace("\n", " ");
                    }
                    else
                    {
                        if (CopyRuleFromPreviousOrder)
                        {
                            worksheet.Cells[row, dataParsingRule.Column].CopyFrom(worksheet.Cells[row + 1, dataParsingRule.Column], PasteSpecial.Formats);
                        }
                        worksheet.Cells[row, dataParsingRule.Column].Value = value.Replace("\n", " ");
                    }
                }
                workbook.SaveDocument(path);
                SpreadsheetExtension.CloseDocument(name);

                Repository<ParsedCells> parsedCellsRepository = new Repository<ParsedCells>();

                var cell = new ParsedCells
                {
                    Column = dataParsingRule.Column,
                    Content = value,
                    EmailId_Id = email.Id,
                    TableId_Id = dataParsingRule.TableId_Id,
                    Worksheet = dataParsingRule.Worksheet,
                    WorksheetName = worksheet.Name
                };

                parsedCellsRepository.Add(cell);
                parsedCellsRepository.Commit();
            }
        }