我正在构建一个带有日期类型列的StringBuilder,并使用我的格式YYYY-MM-DD
附加一些日期。
稍后,我将其转换为byte [],然后从中创建一个.csv文件:
public ActionResult DownloadUsersDates()
{
string data = Encoding.UTF8.GetBytes(GetAllDates());
var res = Encoding.UTF8.GetPreamble().Concat(data).ToArray();
return File(res, "text/csv", "DatesList.csv");
}
public string GetAllDates()
{
var sb = new StringBuilder();
const string separater = ",";
const string columnEscaper = "\"";
sb.Append("Date");
//Doing some code...
foreach (var item in myItems)
{
sb.Append(columnEscaper);
sb.Append((item.BirthDate.ToString("yyyy-MM-dd"))); //returns dates of format: `YYYY-MM-DD`
sb.Append(columnEscaper);
sb.Append(separater);
sb.Append("\r");
}
}
问题是它会更改我的格式并将其另存为另一种格式:DD/MM/YYYY
。
我知道我需要以某种方式更改列格式单元格。我该怎么办?
提前致谢。
答案 0 :(得分:1)
问题是它改变了我的格式并将其保存为另一种格式:DD / MM / YYYY。
我认为这是不正确的。如果您在文本编辑器(而不是Excel)中打开文件,它将是yyyy-MM-dd。
让我们看看以下* .csv文件:
这是它在澳大利亚的Excel 2016中呈现的方式。
Excel识别出该字符串是日期,并根据您的本地设置格式化单元格。您看到的内容与Windows设置不同的人所看到的不同。
让我们改变列的格式。
答案 1 :(得分:0)
你可以试试这个。我希望它和你的需要一样。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace ExportToCSV.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
byte[] data = Encoding.UTF8.GetBytes(GetAllDates());
var res = Encoding.UTF8.GetPreamble().Concat(data).ToArray();
return File(res, "text/csv", "DatesList.csv");
}
public string GetAllDates()
{
var sb = new StringBuilder();
sb.AppendLine("Date");
foreach (var item in Clients.clients)
{
sb.Append("'");
sb.Append((item.Dob.ToString("yyyy-MM-dd"))); //returns dates of format: `YYYY-MM-DD`
sb.Append("',");
sb.Append("\n");
}
return sb.ToString();
}
}
public class Clients
{
public string FirstName { set; get; }
public string LastName { set; get; }
public string Email { set; get; }
public DateTime Dob { set; get; }
public Clients(string firstname, string lastname, DateTime dob, string email)
{
this.FirstName = firstname;
this.LastName = lastname;
this.Dob = dob;
this.Email = email;
}
public static List<Clients> clients = new List<Clients>
{
new Clients ( "Adam", "Bielecki", DateTime.Parse("22-05-1986"), "adamb@example.com" ),
new Clients ( "George1", "Smith", DateTime.Parse("10-10-1990"), "george@example.com" ),
new Clients ( "George2", "Smith", DateTime.Parse("10-05-1992"), "george@example.com" ),
new Clients ( "George3", "Smith", DateTime.Parse("08-12-1998"), "george@example.com" )
};
}
}