per ordinare le colonne di un foglio Excel con C# si usa la seguente sintassi
(vedi sito Microsoft https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.sort.aspx)

sintassi:
settare l'intervallo da ordinare
va indicata la prima cella in alto a sinistra e l'ultima in basso a destra
Excel.Range tabelladati = (Excel.Range)xlSchedaExcel.Range[xlSchedaExcel.Cells[x, y] cella alto/sinistra, xlSchedaExcel.Cells[x, y]cella basso/destra];

tabelladati.Sort ordina l'intervallo
(

);


esempio: ordino una tabella di 10 colonne

Excel.Range tabelladati = (Excel.Range)xlSchedaExcel.Range[xlSchedaExcel.Cells[1, 1], xlSchedaExcel.Cells[xlSchedaExcel.Cells[1, 1].End[Excel.XlDirection.xlDown].Row, 10]; creo intervallo tabelladati da ordiare
tabelladati.Sort
(

tabelladati.Columns[1, Type.Missing], Excel.XlSortOrder.xlAscending, ordino in modo ascedente la prima colonna
tabelladati.Columns[5, Type.Missing], Type.Missing, Excel.XlSortOrder.xlAscending, ordino in modo ascendente la quinta colonna
Type.Missing, Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlYes, la tabella ha intestazione
Type.Missing,
Type.Missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin, per carattere (non sillabe)
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal
);