如何读取文本文件并将其写入asp.net中的excel文件

时间:2012-06-15 11:11:13

标签: asp.net excel

我的要求是阅读文本文件,文本文件格式为

12345|566437347|34564564|66465^2343|234234|45455|4534643...

我需要将此文本文件存储到Excel文件中。在文本文件中,“^”是行分隔符,“|”是列分隔符。

2 个答案:

答案 0 :(得分:1)

您可以将文本文件读入字符串并将字符串拆分两次:

string[] rowArray = textfile.Split('^');
foreach (string row in rowArray )
{
    //excel code

    string[] columnArray = textfile.Split('|');
    foreach (string column in columnArray  )
    {
        //excel code
    }
}

首先,将文本文件拆分为行,然后将每行拆分为列。

答案 1 :(得分:0)

我建议EPPLus创建excel文件而不在服务器上安装Office。然后,您只需DataTableLoadFromDataTable方法。

您需要按'^'分割文字以获取所有行,并按'|'分隔每行以获取所有字段。要获取DataTable的列数,您需要在al行中找到最大字段数:

var text = File.ReadAllText(@"C:\Temp\data.txt");
var lines = text.Split('^');
var rows = lines.Select(l => new { Line = l, Fields = l.Split('|') });
var colCount = rows.Max(r => r.Fields.Length);
var tbl = new DataTable();
for (int i = 1; i <= colCount; i++)
    tbl.Columns.Add("Column" + i, typeof(string));
foreach (var row in rows)
{
    tbl.Rows.Add().ItemArray = row.Fields;
}
var pck = new OfficeOpenXml.ExcelPackage(new FileInfo(@"C:\Temp\data.xlsx"));
var ws = pck.Workbook.Worksheets.Add("Data");
ws.Cells["A1"].LoadFromDataTable(tbl, true, OfficeOpenXml.Table.TableStyles.Medium6);
pck.Save();