Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net中创建.csv文件?_C#_Asp.net - Fatal编程技术网

C# 如何在asp.net中创建.csv文件?

C# 如何在asp.net中创建.csv文件?,c#,asp.net,C#,Asp.net,如何通过读取asp.net中的数据库来创建.CSV文件?有人能建议我如何在asp.net中创建.CSV文件吗 提前感谢。您可以在文章中看到如何创建CSV文件 您可以看到如何动态生成文件内容,但它的行为与文章中的可下载文件类似。为什么您不能: 1) 查询数据库(例如,使用SQL读取器) 2) 将HTTP响应头(response.ContentType)设置为MIME类型“application/csv” 3) 以逗号分隔(CSV)格式写出(response.write)结果集的每一行 下面是该方法

如何通过读取asp.net中的数据库来创建.CSV文件?有人能建议我如何在asp.net中创建.CSV文件吗


提前感谢。

您可以在文章中看到如何创建CSV文件

您可以看到如何动态生成文件内容,但它的行为与文章中的可下载文件类似。

为什么您不能:

1) 查询数据库(例如,使用SQL读取器)

2) 将HTTP响应头(response.ContentType)设置为MIME类型“application/csv”

3) 以逗号分隔(CSV)格式写出(response.write)结果集的每一行

下面是该方法的一个示例:

检查以下内容:


正在使用

WriteFile(从FileHelperEngine继承)重载。写一个数组 将记录复制到指定文件

WriteStream(从FileHelperEngine继承)重载。将记录数组写入 指定的流

WriteString(继承自 FileHelperEngine)重载。将记录数组写入字符串 然后把它还给我

参考资料:


试试这个:

string filePath = @"C:\test.csv";  
string delimiter = ",";  

string[][] output = new string[][]{  
new string[]{"Col 1 Row 1", "Col 2 Row 1", "Col 3 Row 1"},  
new string[]{"Col1 Row 2", "Col2 Row 2", "Col3 Row 2"}  
};  
int length = output.GetLength(0);  
StringBuilder sb = new StringBuilder();  
for (int index = 0; index < length; index++)  
sb.AppendLine(string.Join(delimiter, output[index]));  

File.WriteAllText(filePath, sb.ToString()); 
stringfilepath=@“C:\test.csv”;
字符串分隔符=“,”;
字符串[][]输出=新字符串[][]{
新字符串[]{“列1第1行”、“列2第1行”、“列3第1行”},
新字符串[]{“Col1第2行”、“Col2第2行”、“Col3第2行”}
};  
int length=output.GetLength(0);
StringBuilder sb=新的StringBuilder();
for(int index=0;index

更多信息。

无论如何,如果您允许使用双引号、逗号、空格等特殊字符,您应该找到任何用于此功能的强大CSV库。。。出现在您的文件中。

认为您正在寻找CSV文件的格式。它实际上是一个结构非常简单的普通文本文件

您可以通过从数据库中获取数据并根据需要将数据写入文本文件来实现

以下是CSV文件内容的示例:

Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar

文件中有三列:
Year
Make
Model
,两行数据是:
1997,福特,E350
2000,Mercury,Cougar

请显示您尝试过的代码,并列举流程中每一步都无法解决的问题。@Alexei:它得到了2张赞成票!!:):)如果您使用的是
DataTable
类,那么请检查这听起来太复杂了。。。您仍然需要设置“response.ContentType()”,以便提示用户“保存”web服务器返回的.csv。嗯…哪一部分太复杂了?您是否看到第二篇文章设置了
Response.ContentType
?(顺便说一句,提到的第二篇文章似乎基本上就是你在回答中所建议的。但是第一篇文章有一个更完整的CSV处理实现。)你编写CSV文件的代码不完整。如果字段包含逗号,Excel之类的程序将无法正确解析该字段。@JonathanWood:我尚未对代码进行完整测试,您最好知道stackoverflow不是代码提供程序端。本网站的目的是帮助不要做所有其他人的工作。指定的参考资料足以指导他解决问题。请查看我的stackoverflow分数,您可能会看到我确实知道stackoverflow是关于什么的。是的,我认为你的回答很有帮助。但它是不完整的,OP可能没有意识到这一点。根据他的数据,这实际上可能不足以解决他们的问题。这就是为什么我要指出它。@JonathanWood:谢谢你的建议。我在参考中指出了该链接,因为该链接属于asp.net网站,并且有视频教程。
FileHelpers.CsvEngine.DataTableToCsv(dataTable, filename);
string filePath = @"C:\test.csv";  
string delimiter = ",";  

string[][] output = new string[][]{  
new string[]{"Col 1 Row 1", "Col 2 Row 1", "Col 3 Row 1"},  
new string[]{"Col1 Row 2", "Col2 Row 2", "Col3 Row 2"}  
};  
int length = output.GetLength(0);  
StringBuilder sb = new StringBuilder();  
for (int index = 0; index < length; index++)  
sb.AppendLine(string.Join(delimiter, output[index]));  

File.WriteAllText(filePath, sb.ToString()); 
Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar