添加列以动态导出CSV

时间:2015-03-13 04:26:19

标签: c# .net excel 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每个月都会添加一条新记录。就像四月份一样,三月份的工资将会增加。

如何根据从薪水中提取的数据动态创建列?

2 个答案:

答案 0 :(得分: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";




希望这有帮助。

答案 1 :(得分: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);