我正在读取员工表的值并将其导出为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 :(得分: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);