阿拉伯语词汇出口到Excel的asp.net

我从后面的c#代码中导出一个阿拉伯语的工作出现问题时出现了问题:我使用的代码是:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); string attachment = "attachment; filename=Employee.xls"; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.Charset = "UTF-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; HttpContext.Current.Response.AddHeader("content-disposition", attachment); HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; Response.Write("السبت");// this word mean Saturday in arabic Response.End(); Application.UnLock(); 

但是在我打开excel文件后,看起来像: 在这里输入图像说明

为什么这个词看起来像这样以及如何解决它? 如果你在第二行看到单词的大小不符合单元格的大小怎么做? 另一个问题:如何从后面的C#代码着色单元格的背景以及如何组合单元格? 任何方式

我把你的例子重写了我刚刚结束的testing它,一切工作正常我不知道你是否遇到Culture问题

请记住我正在分配的文件名并将其传递给一个方法

 public static void ExportToExcel(DataTable table, string fileName) { HttpContext context = HttpContext.Current; context.Response.Clear(); context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254"); context.Response.Charset = "windows-1254"; //ISO-8859-13 ISO-8859-9 windows-1254 //Begin Table context.Response.Write("<table><tr>"); //Write Header foreach (DataColumn column in table.Columns) { context.Response.Write("<th>" + column.ColumnName + "</th>"); } context.Response.Write("</tr>"); //Write Data foreach (DataRow row in table.Rows) { context.Response.Write("<tr>"); for (int i = 0; i < table.Columns.Count; i++) { context.Response.Write("<td>" + row[i].ToString().Replace(",", string.Empty) + "</td>"); } context.Response.Write("</tr>"); } //End Table context.Response.Write("</table>"); context.Response.ContentType = "application/vnd.ms-excel"; context.Response.AppendHeader("content-disposition", string.Format("attachment;filename={0}.xls", fileName)); context.Response.Flush(); context.Response.End(); }