C# C将数据写入下一列的特殊字符
我正在从sql表中写入数据并导出到excel文件,但问题是数据只出现在一个单元格中,所有数据之间带有\符号。我应该使用哪个特殊字符移动到下一列C# C将数据写入下一列的特殊字符,c#,asp.net,.net,excel,c#-4.0,C#,Asp.net,.net,Excel,C# 4.0,我正在从sql表中写入数据并导出到excel文件,但问题是数据只出现在一个单元格中,所有数据之间带有\符号。我应该使用哪个特殊字符移动到下一列 SqlDataReader dr = cmd.ExecuteReader(); using (System.IO.StreamWriter fs1 = new System.IO.StreamWriter(Filename)) { // Loop through the fields and add headers for (int
SqlDataReader dr = cmd.ExecuteReader();
using (System.IO.StreamWriter fs1 = new System.IO.StreamWriter(Filename))
{
// Loop through the fields and add headers
for (int i = 0; i < dr.FieldCount; i++)
{
string name = dr.GetName(i);
if (name.Contains(","))
name = "\"" + name + "\"";
fs1.Write(name + "\\");
}
fs1.WriteLine();
// Loop through the rows and output the data
while (dr.Read())
{
for (int i = 0; i < dr.FieldCount; i++)
{
string value = dr[i].ToString();
if (value.Contains(","))
value = "\"" + value + "\"";
fs1.Write(value + "\\");
}
fs1.WriteLine();
}
fs1.Close();
}
输出
a\b\c\d
在一列中。。我希望在相邻列中添加一个b c d,例如,您的文本文件包含以下数据:
a\b\c\d
1\2\3\4
您可以在excel中读取此文件并指定分隔符符号:
转到Microsoft Excel我正在使用2010版。
文件>打开>选择筛选文本文件
从文件中选择所需的文件
您将看到以下对话框:
继续并选择列的类型,然后完成文本导入向导
输出将按要求进行
使用代码:
将反斜杠分隔符\\更改为
保存扩展名为.csv的文件。打开以\分隔的文件时,Excel不会自动拆分。如果希望它将它们识别为单独的列,则需要csv或txt文档,分别以逗号分隔和制表符分隔 导出到.csv文件时,可以使用:
fs1.Write(value + ",");
或者使用
fs1.Write(value + "\t");
不确定您是否在意,但按照现在的编写方式,输出文件中每行的末尾都会有一个分隔符。我相信您可以使用datatable以不同的方式直接将数据写入excel文件 检查
这可能不是你最初的问题,但我相信这正是你需要的 您知道可以将结果输出为Excel吗
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\yourExcel.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("CREATE TABLE [Sheet1] ([Column1] string,
[Column2] string, [Column3] string, [Column4] string)",
conn);
cmd.ExecuteNonQuery();
cmd = new OleDbCommand("Insert Into [Sheet1] Values ('a','b','c','d')", conn);
cmd.ExecuteNonQuery();
}
不知道问题出在哪里 以下代码适用于我:
var input = @"a\b\c\d";
var list = new List<string>();
foreach (var piece in input.Split('\\'))
{
list.Add(piece);
}
// list holds 4 strings: "a", "b","c","d"
然后重复这个问题。很难理解您的问题,请发布一个文件中一行数据的示例如果它使用“作为delimeter,试试\`?不知道是什么问题,也不知道你在干什么asking@3dd它的输出在一列中。。不在相邻列中。。请查收output@Noctis\我已经在尝试写是的。。。无法使用Microsoft.excel.InterOp程序集创建excel格式的文件。
var input = @"a\b\c\d";
var list = new List<string>();
foreach (var piece in input.Split('\\'))
{
list.Add(piece);
}
// list holds 4 strings: "a", "b","c","d"
var changed = input.Replace('\\','|');
// changed holds :"a|b|c|d"