Asp.net mvc csv中的单元格格式
我正在以3种格式导出一些生成的串行代码(使用C#Asp.Net MVC):.txt、.csv和.xls。 这是在.txt和.xls的代码是在正确的格式。但在.csv中,如果以0开头,则会丢失其前导0,例如: 183531982165 显示为 183532E+11 这是我用来填充文件的代码:Asp.net mvc csv中的单元格格式,asp.net-mvc,excel,csv,export-to-csv,Asp.net Mvc,Excel,Csv,Export To Csv,我正在以3种格式导出一些生成的串行代码(使用C#Asp.Net MVC):.txt、.csv和.xls。 这是在.txt和.xls的代码是在正确的格式。但在.csv中,如果以0开头,则会丢失其前导0,例如: 183531982165 显示为 183532E+11 这是我用来填充文件的代码: public static byte[] CreateFile(SericalCodeModel scObj, myDB db) { using (System.IO.FileStre
public static byte[] CreateFile(SericalCodeModel scObj, myDB db)
{
using (System.IO.FileStream fs = new System.IO.File.Create(filePath))
{
using (System.IO.TextWriter wr = new System.IO.StreamWriter(fs))
{
List<List<string>> fileLines = db.Get<SerialCode>().GetSerialcodeOutDataToFile(scObj); // the db records
foreach (List<string> fileLine in fileLines)
{
wr.WriteLine(string.Join(";", fileLine));
}
}
}
}
public static byte[]CreateFile(serialcodemodemel scObj,myDB)
{
使用(System.IO.FileStream fs=new System.IO.File.Create(filePath))
{
使用(System.IO.TextWriter wr=new System.IO.StreamWriter(fs))
{
List fileLines=db.Get().GetSerialcodeOutDataToFile(scObj);//数据库记录
foreach(在文件行中列出文件行)
{
WriteLine(string.Join(“;”,fileLine));
}
}
}
}
只有当我用Excel打开文件时,才会发生此错误,否则,用任何其他编辑器(如记事本)都会显示它的状态
这是为什么?我如何修复该错误?csv文件缺少您习惯的格式,因此您必须向Excel提供如何解释其内容(文本、数字等)的说明。有关详细信息,请参阅,我尝试使用“=”这个东西做一些类似于他们在该线程中所做的事情,但没有成功。问题是,只有一列,一个带有数字代码(串行代码)的列有格式问题,其他列没有问题。另外,当我在使用Excel打开csv文件时更改格式时,前导0仍然丢失。我用我用来归档文件和记录的代码编辑了这个问题。你用什么打开CSV?用记事本打开它-你看到正确的格式了吗?Excel只是在糊弄你。@Nick.McDermaid是的,在其他所有工具中,比如记事本、记事本++,格式都是正确的,只有在Excel中是错误的。使用单元格格式,它可以被修复(即使用户不必费心这么做),但是前导0丢失了!所以问题是:CSV文件的实际用途是什么?您已经有excel的.xls文件。任何CSV文件都会出现此“问题”。CSV通常用于上传到其他系统。巧合的是,它默认在excel中打开。要真正强制格式化,可以尝试用引号括起来。但真正的答案是:不要在excel中打开此文件