2015-03-13 3 views
1

Читаю значения для таблицы сотрудников и экспортировать его в CSV, как показано ниже:Добавить столбцы Экспорт CSV динамически

ID | Name |  DOB | Address | City | State 
1 Test 01/01/2000 xyz  ab  cd 

Теперь Мое требование, чтобы добавить зарплату к этому. У меня зарплата в списке, который можно экспортировать в CSV.

выход будет, как:

ID | Name |  DOB | Address | City | State | Jan,2015 | Feb, 2015 
1 Test 01/01/2000 xyz  ab  cd  1000  2000 

Теперь month-wise salary будут добавлены каждый месяц с новой записью. Как и в апреле, зарплата в марте будет добавлена.

Как создать столбцы динамически на основе данных, полученных из зарплаты?

+0

Так, зарплата приходит Monthy вы можете добавить 12 столбцов для каждого месяца и с помощью переключателя в случае кода добавить зарплату соответствующую графу. Не нужно создавать столбцы динамически. Или у вас есть специальное требование для создания динамического столбца? –

+0

Да, я хочу генерировать столбцы на основе данных, доступных в базе данных. Как сейчас, у нас есть зарплата всего 2 месяца в базе данных, т. Е. Jan & feb, поэтому нет смысла создавать 12 столбцов. В отчете уже есть 40 столбцов. – Daman

ответ

0

Сохраните свой результат до DataTable.

А потом попробовать этот

CSVWriter writer = new CSVWriter(yourDataTable); 
byte[] datatoexport = writer.ExportToBytes(); 
string fileName = string.Format("Export-{0}.csv", DateTime.Now.ToString("yyyyMMddhhmm")); 
return File(datatoexport, "text/csv", fileName); 
0

Во-первых, вам нужно идентифицировать данные, сколько месяцев зарплата приходит. Это легко сделать с помощью C#. Затем в той же логике вы можете использовать нижеприведенный код, чтобы добавить столбец в Excel для каждого месяца.

Excel.Application xlApp = new Excel.Application(); 
 
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open("filename", other parameters) 
 
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets.get_Item(SheetNumber); 
 
Excel.Range rng = xlWorkSheet.UsedRange; 
 
int colCount = rng.Columns.Count; 
 
int rowCount = rng.Rows.Count; 
 
rng = (Excel.Range)xlWorkSheet.Cells[rowCount, colCount]; 
 
Excel.Range newColumn = rng.EntireColumn; 
 
xlWorkSheet.Cells[1, colCount + 1] = "Jan";

Надеется, что это помогает.

Смежные вопросы