我正在尝试将.csv
文件从 Web 服务写入 ftp。当我在 Web 服务完成编写后下载文件时,Excel 在不同版本的 Excel 中反应不同。2013 完全可以正常打开文件,并且完全按照我想要的方式工作。但是 2003 有以下错误,当我打开文件时,所有内容都在 A 列中,而不是分布在 b、c、d 等中,逗号没有分隔。
这是 c# web 服务的代码
string delimiter = ",";
int length = filecontents.Count;
StringBuilder sb = new StringBuilder();
for (int index = 0; index < length; index++)
sb.AppendLine(string.Join(delimiter, filecontents[index]));
string fileName = name;
string ftpAddress = "myaddress";
string username = "myusername";
string password = "mypassword";
string str = sb.ToString();
byte[] buffer = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, buffer, 0, buffer.Length);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpAddress + fileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
Stream reqStream = request.GetRequestStream();
reqStream.Write(buffer, 0, buffer.Length);
reqStream.Close();
我试图设置request.ContentType
为application/CSV
并且text/CSV
都返回错误
“System.NotSupportedException:此类不支持此属性。↵ 在 System.Net.FtpWebRequest.set_ContentType(字符串值)”
任何想法将不胜感激
编辑:当\t
用作分隔符(制表符)时,旧版本的 Excel 执行我想要的方式。但是,较新的版本则不会。所以我猜不同版本的 Excel 有不同的默认分隔符,关于如何强制它默认为逗号的任何想法?