Exemplo n.º 1
0
        public IEnumerable <IDocument> Execute(IReadOnlyList <IDocument> inputs, IExecutionContext context)
        {
            return(inputs.AsParallel().Select(context, input =>
            {
                try
                {
                    Tabular.Csv csv = new Tabular.Csv()
                    {
                        Data = input.Content
                    };
                    Tabular.Table table = Tabular.Csv.FromCsv(csv);
                    StringBuilder builder = new StringBuilder();

                    int columnCount = table.First().Count;

                    int[] columnSize = new int[columnCount];

                    foreach (var row in table.Rows)
                    {
                        for (int i = 0; i < row.Count; i++)
                        {
                            var cell = row[i];
                            columnSize[i] = Math.Max(columnSize[i], cell.Value.Length);
                        }
                    }

                    bool firstLine = true;
                    WriteLine(builder, columnSize);
                    foreach (var row in table.Rows)
                    {
                        builder.Append("|");
                        for (int i = 0; i < columnSize.Length; i++)
                        {
                            builder.Append(" ");
                            builder.Append(row[i].Value);
                            builder.Append(' ', columnSize[i] - row[i].Value.Length + 1);
                            builder.Append("|");
                        }
                        builder.AppendLine();
                        WriteLine(builder, columnSize, this._firstLineHeader && firstLine);
                        firstLine = false;
                    }

                    return context.GetDocument(input, builder.ToString());
                }
                catch (Exception e)
                {
                    Trace.Error($"An {e.ToString()} occurred ({input.SourceString()}): {e.Message}");
                    return null;
                }
            }).Where(x => x != null));
        }
Exemplo n.º 2
0
        public IEnumerable <IDocument> Execute(IReadOnlyList <IDocument> inputs, IExecutionContext context)
        {
            return(inputs.AsParallel().Select(input =>
            {
                try
                {
                    Tabular.Csv csv = new Tabular.Csv()
                    {
                        Data = input.Content
                    };
                    Tabular.Table table = Tabular.Csv.FromCsv(csv);
                    StringBuilder builder = new StringBuilder();

                    bool firstLine = true;
                    builder.AppendLine("<table>");
                    foreach (var row in table.Rows)
                    {
                        builder.AppendLine("<tr>");
                        foreach (var cell in row)
                        {
                            if (_firstLineHeader && firstLine)
                            {
                                builder.AppendLine($"<th>{cell.Value}</th>");
                            }
                            else
                            {
                                builder.AppendLine($"<td>{cell.Value}</td>");
                            }
                        }
                        builder.AppendLine("</tr>");
                        firstLine = false;
                    }
                    builder.Append("</table>");
                    return context.GetDocument(input, builder.ToString());
                }
                catch (Exception e)
                {
                    Trace.Error($"An {e.ToString()} occurred ({input.Source}): {e.Message}");
                    return null;
                }
            }).Where(x => x != null));
        }
Exemplo n.º 3
0
 public IEnumerable <IDocument> Execute(IReadOnlyList <IDocument> inputs, IExecutionContext context)
 {
     return(inputs.AsParallel().Select(input =>
     {
         try
         {
             using (var stream = input.GetStream())
             {
                 Tabular.Table table = Tabular.Excel.ReadFrom(stream, Tabular.ExcelFormat.Excel2007);
                 Tabular.Csv csv = Tabular.Csv.ToCsv(table);
                 return context.GetDocument(input, csv.Data);
             }
         }
         catch (Exception e)
         {
             Trace.Error($"An {e.ToString()} occurred ({input.SourceString()}): {e.Message}");
             return null;
         }
     }).Where(x => x != null));
 }
Exemplo n.º 4
0
        public IEnumerable<IDocument> Execute(IReadOnlyList<IDocument> inputs, IExecutionContext context)
        {
            return inputs.AsParallel().Select(input =>
            {
                try
                {
                    Tabular.Csv csv = new Tabular.Csv() { Data = input.Content };
                    Tabular.Table table = Tabular.Csv.FromCsv(csv);
                    StringBuilder builder = new StringBuilder();

                    bool firstLine = true;
                    builder.AppendLine("<table>");
                    foreach (var row in table.Rows)
                    {
                        builder.AppendLine("<tr>");
                        foreach (var cell in row)
                        {
                            if (_firstLineHeader && firstLine)
                            {
                                builder.AppendLine($"<th>{cell.Value}</th>");
                            }
                            else
                            {
                                builder.AppendLine($"<td>{cell.Value}</td>");
                            }
                        }
                        builder.AppendLine("</tr>");
                        firstLine = false;
                    }
                    builder.Append("</table>");
                    return context.GetDocument(input, builder.ToString());
                }
                catch (Exception e)
                {
                    Trace.Error($"An {e.ToString()} occurred ({input.SourceString()}): {e.Message}");
                    return null;
                }
            }).Where(x => x != null);
        }