如何将文本文档另存为CSV文件 [英] How to save a text document as CSV file
本文介绍了如何将文本文档另存为CSV文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将'n'字词的文本框内容转换为csv格式。
请帮帮我
我在控制台窗口中完成了代码我希望从Textbox获取输入并执行相同的转换csv格式的文本
I want to convert a textbox content of 'n' terms to csv format .
Please help me
I've done code in Console windows I want to get input from Textbox and do the same for converting the text in csv format
string fileName = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\CSV.csv";
TextWriter writer = new StreamWriter(fileName,true);
List<string> stringList = new List<string>();
Console.Write("Enter the number of elements in the list: ");
int listSize;
int.TryParse(Console.ReadLine(),out listSize);
Console.WriteLine("Enter {0} elements one by one: ",listSize);
for (int index = 0; index < listSize; index++)
{
stringList.Add(Console.ReadLine());
}
Console.Write("\nList elements:\n\n");
foreach (var items in stringList)
{
Console.WriteLine(items);
}
string csvString = string.Join(",", stringList.ToArray());
Console.WriteLine("\nCSV Output");
Console.WriteLine("\n"+csvString);
writer.WriteLine(csvString);
writer.Close();
Console.ReadLine();
推荐答案
//将数据写入.csv文件
private void WriteToCSV(string数据)
{
int length = data.Split(new string [] {Environment.NewLine},StringSplitOptions.RemoveEmptyEntries).Length;
//包含按部分划分的每一行的列表清单
列表< list>< string>> dataList = new List< list>< string>>();
List< string> valuesA = new List< string>();
//构建列表
foreach(data.Split中的字符串行(new string) [] {Environment.NewLine},StringSplitOptions.RemoveEmptyEntries))
{
List< string> partsLine = new List< string>();
partsLine.AddRange(line.Split('\ t'));
dataList.Add(partsLine); < br $>
}
const string separator =;;
//将列表写入.csv文件
尝试
{
using(StreamWriter writer = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder。桌面)+\\output.xls,false))
{
dataList.ForEach(line =>
{
var lineArray = line.Select(c => c.Contains(separator)?c.Replace(separator.ToString(),\\+ separator):c).ToArray ();
writer.WriteLine(string.Join(separator,lineArray));
});
}
}
catch(Exception ex)
{
Console.WriteLine(将数据写入.csv文件时出错(+ ex.Message +));
}
// Write data to a .csv file
private void WriteToCSV(string data)
{
int length = data.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Length;
// List of lists containing each line split by part
List<list><string>> dataList = new List<list><string>>();
List<string> valuesA = new List<string>();
// Building the list
foreach (string line in data.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
{
List<string> partsLine = new List<string>();
partsLine.AddRange(line.Split('\t'));
dataList.Add(partsLine);
}
const string separator = ";";
// Writing the list to the .csv file
try
{
using (StreamWriter writer = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\output.xls", false))
{
dataList.ForEach(line =>
{
var lineArray = line.Select(c => c.Contains(separator) ? c.Replace(separator.ToString(), "\\" + separator) : c).ToArray();
writer.WriteLine(string.Join(separator, lineArray));
});
}
}
catch (Exception ex)
{
Console.WriteLine("Error while writing data to .csv file (" + ex.Message + ")");
}
我会使用DataGridView:
I would do it with a DataGridView:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test_GridToCsv
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_AddColumn_Click(object sender, EventArgs e)
{
string colName = string.Format("col_{0}", this.dataGridView1.Columns.Count);
this.dataGridView1.Columns.Add(colName, colName);
}
private void button_SaveAsCsv_Click(object sender, EventArgs e)
{
try
{
using (StreamWriter w = new StreamWriter(@"d:\tmp\1.csv"))
{
w.Write(this.dataGridView1.ExportToCsv(this.checkBox_IncludeHeaders.Checked));
}
MessageBox.Show("saved");
}
catch (System.ObjectDisposedException ex)
{
MessageBox.Show(ex.ToString());
throw;
}
catch (System.NotSupportedException ex)
{
MessageBox.Show(ex.ToString());
throw;
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.ToString());
throw;
}
}
}
public static class Utils
{
public static string ExportToCsv(this DataGridView v, bool includeHeaders = false)
{
string s = string.Empty;
if (includeHeaders)
{
int c = 0;
for (; c < v.ColumnCount - 1; c++)
s += v.Columns[c].Name + ",";
s += v.Columns[c].Name + Environment.NewLine;
}
for (int r = 0; r < v.Rows.Count; r++)
{
int c = 0;
for (; c < v.Columns.Count - 1; c++)
{
s += (v[c, r].Value ?? "null") + ",";
}
s += (v[c, r].Value ?? "null") + Environment.NewLine;
}
return s;
}
}
}
这篇关于如何将文本文档另存为CSV文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文