LinqPad自定义excel导出

时间:2015-04-13 08:41:18

标签: excel linqpad

我想修改LinqPad的excel函数的导出。我希望输出在行而不是列。当前格式示例:

Result1
value1
value2
value3

Result2
rvalue1
rvalue2

但我希望它采用以下格式:

Result1      Result2
value1       rvalue1
value2       rvalue2
value3

1 个答案:

答案 0 :(得分:0)

试试这个。

string Input = @"

Result1
value1
value2
value3

Result2
rvalue1
rvalue2

".Trim();

void Main()
{
  var isNextColumn = true;

  var theList = Input.Split('\n').Select(s => {
    var anon = new { IsColumn = isNextColumn, Value = s.Trim() };
    isNextColumn = string.IsNullOrWhiteSpace(s);
    return anon;
  }).Where(w => !string.IsNullOrWhiteSpace(w.Value)).ToList();

  var table = new DataTable("Your Sheet");
  theList.Where(w => w.IsColumn).ToList().ForEach(f => table.Columns.Add(f.Value));
  var rowCounter = 1;
  var columnName = string.Empty;
  theList.ForEach(f => {
    if(f.IsColumn)
    {
      columnName = f.Value;
      rowCounter = 0;
    } else {
      if(table.Rows.Count <= rowCounter)
      {
        var newRow = table.NewRow();
        newRow[columnName] = f.Value;
        table.Rows.Add(newRow);
      } else table.Rows[rowCounter][columnName] = f.Value;
      ++rowCounter;
    }
  });

  table.Dump();
}
相关问题