【问题标题】:Reading Data from CSV to Screen output [closed]从 CSV 读取数据到屏幕输出 [关闭]
【发布时间】:2015-07-19 16:46:18
【问题描述】:

这可能是不允许的,但我还是会问的。

我正在尝试开发一种类似于 YALV 但用于自定义日志的产品。

我有一个 CSV 文件,我想读入它并在屏幕上显示在一个表格中,该表格可以像 YALV 一样滚动、过滤、着色等。

我有用于读取和破译 CSV 并以简洁格式输出到另一个文件的代码。我想调整它以使其出现在屏幕上。

我有 C# 和 C 方面的经验,但只与控制台相关。有人可以指导我正确的方向,至少让文件以与 YALV 类似的格式在窗口中读取吗?我可能的步骤是什么?我不确定从哪里开始......

谢谢

【问题讨论】:

  • 如果你正在寻找一个 GUI 并且你想用 C++ 编写代码,我会考虑使用Qt
  • @Gavzooka 完全不清楚你在问什么。您是否介意提供一些简明的示例,说明您想要实现的目标以及您在问题中已经尝试过的目标。
  • 目前,我还没有开发任何东西。我想为我将读入的自定义日志实现类似于 YALV 的产品。我希望在对话框/窗口中以表格格式显示它。我只需要关于我需要使用什么来在对象方面执行此操作的起点。
  • @Gavzooka YALV 是什么?,你希望我自己用谷歌搜索这个吗?给个截图,.csv格式的例子等
  • @Gavzooka 您可能已经注意到您的问题下方有一个edit 按钮,用于改进和添加更多信息。评论不是执行此操作的正确位置。

标签: c# c++ c windows csv


【解决方案1】:

下面的代码在 DataGridView 中显示结果

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.OleDb;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        const string FILENAME = @"c:\temp\test.csv";
        private void button1_Click(object sender, EventArgs e)
        {
            CSVReader csvReader = new CSVReader();
            DataSet ds = csvReader.ReadCSVFile(FILENAME, true);
            dataGridView1.DataSource = ds.Tables["Table1"];
        }
    }
    public class CSVReader
    {

        public DataSet ReadCSVFile(string fullPath, bool headerRow)
        {

            string path = fullPath.Substring(0, fullPath.LastIndexOf("\\") + 1);
            string filename = fullPath.Substring(fullPath.LastIndexOf("\\") + 1);
            DataSet ds = new DataSet();

            try
            {
                if (File.Exists(fullPath))
                {
                    string ConStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}" + ";Extended Properties=\"Text;HDR={1};FMT=Delimited\\\"", path, headerRow ? "Yes" : "No");
                    string SQL = string.Format("SELECT * FROM {0}", filename);
                    OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, ConStr);
                    adapter.Fill(ds, "TextFile");
                    ds.Tables[0].TableName = "Table1";
                }
                foreach (DataColumn col in ds.Tables["Table1"].Columns)
                {
                    col.ColumnName = col.ColumnName.Replace(" ", "_");
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return ds;
        }
    }
}

​

【讨论】:

  • 谢谢,这就是我正在寻找的东西,但似乎无法让它与 WPF 一起使用。 dataGridView1.DataSource = ds.Tables["Table1"];不起作用。如何使用 WPF 和 DataGrid 进行这项工作?
猜你喜欢
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多