Well, at the moment you are picking up your columns by directly allocating them as array arguments. If you are wanting to pick individual items, you're going to need to do something a little bit different - here's an example that you could adapt as you see fit:
public ActionResult SampleDownload1(List<string> columnIds)
{
var records = _getSampleInfoQuery.Execute();
List<excelcolumndefinition> columns = new List<excelcolumndefinitions>();
foreach (string columnName in columnIds)
{
switch (columnName)
{
case "College":
columns.Add(Column(x => x.College));
break;
case "Amount":
columns.Add(Column(x => x.Amount, ExcelFormat.Money));
break;
}
}
return new ExcelFileResult<sampleinfo>(records) {ColumnDefinitions = columns.ToArray()};
}
Obviously this is a fairly naive, simplistic approach, but it should serve to give you some ideas.