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]]