Hi All,
I want to convert a list to excel and return that to the browser. I have finished the process. But the issue is that there is a column in the excel that shrink by default. I have a credit card number column, i have taken that as a string, still that shrinks. (16 digit in the column).
Kindly let me know how can i solve this one.
What I have tried:
var reducedList = FinReportClassList.Select(e => new { e.ConfNo, e.FIleNo, e.Guest, e.CardNo, e.VCAStatus, e.Txn, e.Post, e.Supplier, e.State, e.Country, e.OrgAmount, e.orgcuuactual, e.BillAmount, e.BillCurrency, e.UserName }).ToList();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=VCA-Transactions.xls");
Response.AddHeader("Content-Type", "application/vnd.ms-excel");
WriteTsv(reducedList, Response.Output);
Response.End();
public void WriteTsv<t>(IEnumerable<t> data, TextWriter output)
{
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));
foreach (PropertyDescriptor prop in props)
{
if(prop.DisplayName=="ConfNo")
{
output.Write("Confirmation No");
output.Write("\t");
}
if (prop.DisplayName == "FIleNo")
{
output.Write("FIle No");
output.Write("\t");
}
if (prop.DisplayName == "Guest")
{
output.Write("Guest Name");
output.Write("\t");
}
if (prop.DisplayName == "CardNo")
{
output.Write("Card No");
output.Write("\t");
}
if (prop.DisplayName == "VCAStatus")
{
output.Write("Card Status");
output.Write("\t");
}
if (prop.DisplayName == "Txn")
{
output.Write("Txn Date");
output.Write("\t");
}
if (prop.DisplayName == "Post")
{
output.Write("Post Date");
output.Write("\t");
}
if (prop.DisplayName == "Supplier")
{
output.Write("Supplier Name");
output.Write("\t");
}
if (prop.DisplayName == "State")
{
output.Write("Supplier State");
output.Write("\t");
}
if (prop.DisplayName == "Country")
{
output.Write("Supplier Country");
output.Write("\t");
}
if (prop.DisplayName == "OrgAmount")
{
output.Write("Swipped Amount");
output.Write("\t");
}
if (prop.DisplayName == "orgcuuactual")
{
output.Write("Swipped Currency");
output.Write("\t");
}
if (prop.DisplayName == "BillAmount")
{
output.Write("Bill Amount");
output.Write("\t");
}
if (prop.DisplayName == "BillCurrency")
{
output.Write("Bill Currency");
output.Write("\t");
}
if (prop.DisplayName == "UserName")
{
output.Write("Agent");
output.Write("\t");
}
}
output.WriteLine();
foreach (T item in data)
{
foreach (PropertyDescriptor prop in props)
{
output.Write(prop.Converter.ConvertToString(
prop.GetValue(item)));
output.Write("\t");
}
output.WriteLine();
}
}