using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.Windows.Forms.DataVisualization.Charting; namespace Table { public partial class Form1 : Form { public Form1() { InitializeComponent(); tabControl.TabPages.Clear(); } private void openMenuItem_Click(object sender, EventArgs e) { if (openDialog.ShowDialog() == DialogResult.OK) { string fileName = openDialog.FileName; TabPage page = new TabPage(); tabControl.TabPages.Add(page); tabControl.SelectedTab = page; FileInfo info = new FileInfo(fileName); page.Text = info.Name; page.Name = info.FullName; DataGridView grid = new DataGridView(); page.Controls.Add(grid); grid.Dock = DockStyle.Fill; string[] lines = File.ReadAllLines(fileName); int columns = 0; List data = new List(); foreach (string line in lines) { string[] items = line.Split(','); if (items.Length > columns) columns = items.Length; if (items.Length > 0) if (items.Length > 1 || items[0] != "") data.Add(items); } for (int i = 1; i <= columns; i++) grid.Columns.Add("column" + i, "column " + i); Text = "" + data.Count; foreach (string[] items in data) grid.Rows.Add(items); } } private void saveMenuItem_Click(object sender, EventArgs e) { TabPage page = tabControl.SelectedTab; if (page != null) { Control control = page.Controls[0]; if (control is DataGridView) { DataGridView grid = control as DataGridView; if (saveDialog.ShowDialog() == DialogResult.OK) { string fileName = openDialog.FileName; List lines = new List (); foreach (DataGridViewRow r in grid.Rows) { string line = ""; int cnt = 0; foreach (DataGridViewCell c in r.Cells) { string item = ""; if (c.Value != null) item = c.Value.ToString (); if (cnt > 0) line = line + ","; line = line + item; cnt ++; } lines.Add(line); } File.WriteAllLines(fileName, lines.ToArray ()); } } } } private void chartMenuItem_Click(object sender, EventArgs e) { if (openDialog.ShowDialog() == DialogResult.OK) { string fileName = openDialog.FileName; TabPage page = new TabPage(); tabControl.TabPages.Add(page); tabControl.SelectedTab = page; FileInfo info = new FileInfo(fileName); page.Text = info.Name; page.Name = info.FullName; // using System.Windows.Forms.DataVisualization.Charting; Chart chart = new Chart(); page.Controls.Add (chart); chart.Dock = DockStyle.Fill; chart.Size = new Size(300, 300); ChartArea chartArea = new ChartArea(); chartArea.Name = "ChartArea"; chart.ChartAreas.Add (chartArea); chart.Series.Clear(); Series data = chart.Series.Add(""); data.ChartType = SeriesChartType.Pie; string[] lines = File.ReadAllLines(fileName); foreach (string line in lines) { string[] items = line.Split(','); int cnt = items.Length; string value = (cnt >= 1) ? items[0] : ""; string name = (cnt >= 2) ? items[1] : ""; int number = 0; int.TryParse(value, out number); data.Points.AddXY(name, number); } } } private void quitMenuItem_Click(object sender, EventArgs e) { Close(); } } } abc.txt 1, 2, 3 10, 20, 30 100, 200, 300 debian.csv 4,Etch 5,Lenny 6,Squeeze 7,Wheezy 8,Jessie 9,Stretch 10,Buster 11,Bullseye 12,Bookworm [[http://kmlinux.fjfi.cvut.cz/~culikzde/pw/2021/Table2021.zip|zip]]