如何将文本文档另存为CSV文件 [英] How to save a text document as CSV file

查看:55
本文介绍了如何将文本文档另存为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆