我想修改LinqPad的excel函数的导出。我希望输出在行而不是列。当前格式示例:
Result1
value1
value2
value3
Result2
rvalue1
rvalue2
但我希望它采用以下格式:
Result1 Result2
value1 rvalue1
value2 rvalue2
value3
答案 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();
}