示例#1
0
        public static Cell InsertCell(this SheetData data, WorkbookPart book, string columnName,
                                      uint rowIndex, string text,
                                      CellValues dataType = CellValues.SharedString, string formula = null,
                                      bool isPercentage   = false, log4net.ILog logger = null,
                                      Stopwatch sw        = null)
        {
            var currentCell = data.GetCell(rowIndex, columnName);
            //Log(logger, sw);
            var shareStringPart = dataType == CellValues.SharedString ? GetSharedStringTablePart(book) : null;
            //Log(logger, sw);
            var index = dataType == CellValues.SharedString
                ? shareStringPart.InsertSharedStringItem(text).ToString() : text;
            //Log(logger, sw);
            var x = currentCell.StyleIndex != null
                ? currentCell.StyleIndex : dataType == CellValues.Number
                    ? isPercentage ? book.GetPercentageStyleIndex()
                    : book.GetDoubleStyleIndex()
                : null;

            //Log(logger, sw);
            currentCell.CellFormula = !string.IsNullOrWhiteSpace(formula) ? new CellFormula(formula) : null;
            //Log(logger, sw);
            currentCell.CellValue = new CellValue(dataType == CellValues.Number ? index.Replace(',', '.')
                                                                                : index);
            //Log(logger, sw);
            currentCell.DataType = dataType != CellValues.Number ? new EnumValue <CellValues>(dataType) : null;
            //Log(logger, sw);
            currentCell.StyleIndex = x;
            //Log(logger, sw);
            return(currentCell);
        }