我正在从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 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在彼此的列旁边
答案 0 :(得分:0)
例如,您的文本文件包含以下数据:
a\b\c\d
1\2\3\4
您可以在Excel中读取此文件并指定分隔符号:
转到Microsoft Excel(我使用的是2010版)。
文件&gt;打开&gt;选择过滤Text Files
选择文件。
您将看到以下对话框:
继续并选择列的类型并完成文本导入向导。
输出将按要求进行。
使用代码:
使用\\
,
fs1.Write(name + ",");
使用.csv
扩展名保存文件。
答案 1 :(得分:0)
当您打开由“\”分隔的文件时,Excel不会自动拆分。如果您希望将它们识别为单独的列,则需要csv或txt文档(分别以逗号分隔和制表符分隔。
使用以下命令导出到.csv文件:
fs1.Write(value + ",");
或带
的.txt文件fs1.Write(value + "\t");
不确定您是否关心,但现在您已经写了它的方式,您将在输出文件的每一行的末尾有一个分隔符。
答案 2 :(得分:0)
我相信您可以使用不同方式的数据表直接将数据写入excel文件 校验 http://www.dotnetgallery.com/lab/resource44-Export-to-excel-from-DataTable-using-CNET.aspx
答案 3 :(得分:0)
这可能不是您原来的问题,但我相信这就是您所需要的。
您知道可以将结果输出为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();
}
答案 4 :(得分:0)
不确定是什么问题。
以下代码适用于我:
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"
然后迭代它。