refer this to get DataTable from the input text
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CPTemp
{
class temp
{
static void Main(string[] args)
{
DataTable dtFinal = new DataTable();
dtFinal.Columns.Add("Party");
dtFinal.Columns.Add("Type");
dtFinal.Columns.Add("Tablet");
dtFinal.Columns.Add("Value1");
dtFinal.Columns.Add("Value2");
dtFinal.Columns.Add("Value3");
dtFinal.Columns.Add("Value4");
string text = File.ReadAllText(@"D:\Projects\CPTemp\CPTemp\TextFile1.txt");
var parties = text.Split(new string[] { "Party:" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string party in parties)
{
DataRow row = dtFinal.NewRow();
var lines = party.Split(new string[] { "----------------------" }, StringSplitOptions.RemoveEmptyEntries);
string name = lines[0].Trim().Trim(' ', ',');
string content = lines[1];
string[] items = content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string _item in items)
{
string item = _item.Trim('-').Trim();
if (item.Length > 0 && !item.StartsWith("Total"))
{
string[] cols = item.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
var parts = cols[0].Split(' ');
string type = parts[0];
string tablet;
if (parts.Length == 1)
tablet = cols[1];
else
tablet = string.Join(" ", parts.Skip(1));
string value1 = (cols.Length == 5) ? cols[1] : cols[0];
dtFinal.Rows.Add(name, type, tablet, value1, cols[2], cols[3], cols[4]);
}
}
}
}
}
}
use
ClosedXML [
^] to export the datatable to excel.