public static DataTable ConvertToDataTableForExport(BaseController controller, IList <OrderShipModel> dataList, string[] columns) { DataTable dataTable = new DataTable("Dynamic"); //Get all the properties for (int i = 0; i < columns.Length; i++) { //Setting column names as Property names dataTable.Columns.Add(i.ToString()); } for (int i = 0; i < dataList.Count(); i++) { var dateString = dataList[i].RECEIVE_HOUR_FROM + "h - " + dataList[i].RECEIVE_HOUR_TO + "h Ngày:" + dataList[i].RECEIVE_TIME_DATE.ToString("dd/MM/yyyy"); var values = new object[columns.Length]; var row = 0; values[row++] = i + 1; values[row++] = ReportServices.FormatStringCsv(dataList[i].CREATE_DATE.ToString("dd/MM/yyyy")); values[row++] = ReportServices.FormatStringCsv(dataList[i].SHIP_CODE); values[row++] = ReportServices.FormatStringCsv(dataList[i].RECEIVED_NAME); values[row++] = ReportServices.FormatStringCsv(dataList[i].RECEIVED_PHONE); values[row++] = ReportServices.FormatStringCsv(dataList[i].PRODUCT_NAME); values[row++] = ReportServices.FormatDynamicDecimalCsv(dataList[i].PRICE_PRODUCT.Value); values[row++] = ReportServices.FormatDynamicDecimalCsv(dataList[i].PRICE_SHIP); values[row++] = ReportServices.FormatStringCsv(dateString); values[row++] = ReportServices.FormatStringCsv(OrderStatus.Items[dataList[i].ORDER_STATUS].ToString()); dataTable.Rows.Add(values); } return(dataTable); }