C# 以c语言导出.csv文件中的不同语言内容#
我正在尝试导出.csv文件中的数据。在这里,数据使用不同的语言(阿拉伯语、丹麦语等)。。文件可以成功导出,但文件中的数据内容将替换为?和其他符号。我需要按原样导出.csv文件中的数据。我尝试了在网上找到的所有可能的方法,但无法导出正确的数据。你能帮帮我吗 谢谢 下面是我的代码C# 以c语言导出.csv文件中的不同语言内容#,c#,asp.net,csv,export-to-csv,C#,Asp.net,Csv,Export To Csv,我正在尝试导出.csv文件中的数据。在这里,数据使用不同的语言(阿拉伯语、丹麦语等)。。文件可以成功导出,但文件中的数据内容将替换为?和其他符号。我需要按原样导出.csv文件中的数据。我尝试了在网上找到的所有可能的方法,但无法导出正确的数据。你能帮帮我吗 谢谢 下面是我的代码 protected void lnkExport_Click(object sender, EventArgs e) { List<Entities.Users_Users&
protected void lnkExport_Click(object sender, EventArgs e)
{
List<Entities.Users_Users> lstUsers = new List<Entities.Users_Users>();
lstUsers = BLL.Users_Users.GetDealerUsers(Convert.ToInt16(dealerid));
StringBuilder sb = new StringBuilder();
sb.Clear();
sb.Append("[USERNAME],[PREFIX],[FIRSTNAME],[MIDDLENAME],[LASTNAME],[COMPANYNAME],[JOBTITLE],[CONTACTEMAILID],[USERTYPECODE],[STATUSCODE],[DEALER],[PHONE],[COMPANYLANGUAGE],[ISRECEIVECAMPAIGN],[RECEIVECAMPAIGNEMAILID]");
sb.Append("\r\n");
foreach (Entities.Users_Users UserDetail in lstUsers)
{
sb.Append(UserDetail.UserName + "," + UserDetail.Prefix + "," + UserDetail.FirstName + "," + UserDetail.MiddleName + ",");
sb.Append(UserDetail.LastName + "," + UserDetail.CompanyName + "," + UserDetail.JobTitle + ",");
sb.Append(UserDetail.ContactEmailID + "," + UserDetail.UserTypeCode + "," + UserDetail.StatusCode + ",");
sb.Append(UserDetail.DealerName + "," + UserDetail.Phone + "," + UserDetail.Language + ",");
sb.Append(UserDetail.IsReceiveCampaign + "," + UserDetail.ReceiveCampaignEmailId);
sb.Append("\r\n");
}
UTF8Encoding utf8 = new UTF8Encoding();
var preamble = utf8.GetPreamble();
var data = utf8.GetBytes(sb.ToString());
//string attachment = String.Format("attachment;filename=ExportUsers.csv", "uomEncoded");
// Encoding encoding = Encoding.UTF8;
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "text/csv";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=ExportUsers.csv");
//Response.Charset = "";
// Response.Charset = encoding.EncodingName;
Response.Write(sb.ToString());
Response.Flush();
Response.End();
}
protectedvoid lnkeexport\u单击(对象发送方,事件参数e)
{
List lstUsers=新列表();
lstUsers=BLL.Users\u Users.getDealUsers(Convert.ToInt16(dealerid));
StringBuilder sb=新的StringBuilder();
(某人清楚地);
sb.追加(“[用户名]、[前缀]、[名字]、[中间名]、[姓氏]、[公司名称]、[职务名称]、[联系人电子邮件ID]、[用户类型代码]、[状态代码]、[经销商]、[电话]、[公司语言]、[ISRECEIVECAMPAIGN]、[接收活动电子邮件ID]”;
sb.追加(“\r\n”);
foreach(Entities.Users\u Users用户详细信息在lstUsers中)
{
sb.追加(UserDetail.UserName+”、“+UserDetail.Prefix+”、“+UserDetail.FirstName+”、“+UserDetail.MiddleName+”、”);
sb.追加(UserDetail.LastName+”、“+UserDetail.CompanyName+”、“+UserDetail.JobTitle+”、”);
sb.追加(UserDetail.ContactEmailID+”、“+UserDetail.UserTypeCode+”、“+UserDetail.StatusCode+”、”);
sb.Append(UserDetail.DealerName+”、“+UserDetail.Phone+”、“+UserDetail.Language+”、”);
sb.Append(UserDetail.IsReceiveCampaign+“,“+UserDetail.ReceiveCampaignEmailId);
sb.追加(“\r\n”);
}
UTF8Encoding utf8=新的UTF8Encoding();
var preamble=utf8.GetPreamble();
var data=utf8.GetBytes(sb.ToString());
//字符串附件=string.Format(“附件;文件名=ExportUsers.csv”,“uomEncoded”);
//编码=Encoding.UTF8;
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType=“text/csv”;
Response.ContentEncoding=System.Text.Encoding.UTF8;
//Response.Buffer=true;
AddHeader(“内容处置”、“附件;文件名=ExportUsers.csv”);
//响应。Charset=“”;
//Response.Charset=encoding.EncodingName;
写(某人写的东西);
Response.Flush();
Response.End();
}
这是您可能缺少的内容(第一行):
这是您可能缺少的内容(第一行):
为什么要这样做5次:
sb.Append(UserDetail.UserName+”,“+UserDetail.Prefix+”,“+UserDetail.FirstName+”,“+UserDetail.MiddleName+”,”代码>?这应该是一个字符串。使用您将在UserDetail
上公开的IEnumerable
属性加入Users\u Users
是一个非常糟糕的类名。为什么要在下一行填充时初始化lstUsers
?为什么sb.Clear()代码>刚刚创建StringBuilder sb=new StringBuilder()代码>?为什么sb.Append(“\r\n”)
--你没听说过AppendLine()
?为什么你不使用utf8
?此外,对于下载文件,考虑写一个单独的。谢谢你发现我的代码错误。我将把它作为一种积极的方法。但目前我在尝试新事物时遇到了一个问题。如果你能为我的问题找到解决办法,我将不胜感激。谢谢。你为什么要这样做5次:sb.Append(UserDetail.UserName+”、“+UserDetail.Prefix+”、“+UserDetail.FirstName+”、“+UserDetail.MiddleName+”、”)代码>?这应该是一个字符串。使用您将在UserDetail
上公开的IEnumerable
属性加入Users\u Users
是一个非常糟糕的类名。为什么要在下一行填充时初始化lstUsers
?为什么sb.Clear()代码>刚刚创建StringBuilder sb=new StringBuilder()代码>?为什么sb.Append(“\r\n”)
--你没听说过AppendLine()
?为什么你不使用utf8
?此外,对于下载文件,考虑写一个单独的。谢谢你发现我的代码错误。我将把它作为一种积极的方法。但目前我在尝试新事物时遇到了一个问题。如果你能为我的问题找到解决办法,我将不胜感激。谢谢,你好。我尝试添加上面的行,但仍然不起作用。我刚刚用类似的代码创建了.CSV,Excel成功地显示了它的Unicode字符。如何检查文件是否已损坏?Response.Clear();Response.ClearHeaders();Response.ClearContent();Response.ContentType=“text/csv”;Response.ContentEncoding=System.Text.Encoding.UTF8;AddHeader(“内容处置”、“附件;文件名=ExportUsers.csv”);Response.BinaryWrite(System.Text.Encoding.UTF8.getPremission());写(某人写的东西);Response.Flush();Response.End();我的数据在表格中是,我在excel中得到了…嗨。我尝试添加上面的行,但仍然不起作用。我刚刚用类似的代码创建了.CSV,Excel成功地显示了它的Unicode字符。如何检查文件是否已损坏?Response.Clear();Response.ClearHeaders();Response.ClearContent();Response.ContentType=“text/csv”;Response.ContentEncoding=System.Text.Encoding.UTF8;Response.AddHeader(“内容处置”、“附件;文件名=ExportUsers.csv”
Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble());
Response.Write(sb.ToString());