我的要求是閱讀文本文件,文本文件格式是如何閱讀的文本文件,並將其寫入到Excel文件在asp.net
12345|566437347|34564564|66465^2343|234234|45455|4534643...
這個文本文件,我需要存儲到Excel文件。在文本文件「^
」是行分隔符,「|
」是列分隔符。
我的要求是閱讀文本文件,文本文件格式是如何閱讀的文本文件,並將其寫入到Excel文件在asp.net
12345|566437347|34564564|66465^2343|234234|45455|4534643...
這個文本文件,我需要存儲到Excel文件。在文本文件「^
」是行分隔符,「|
」是列分隔符。
您可以閱讀文本文件轉換成字符串,兩次分割字符串:
string[] rowArray = textfile.Split('^');
foreach (string row in rowArray)
{
//excel code
string[] columnArray = textfile.Split('|');
foreach (string column in columnArray )
{
//excel code
}
}
首先拆分的文本文件,以行,然後每行拆分列。
我可以推薦EPPLus
來創建excel文件,而無需在服務器上安裝Office。然後,你需要的是一個DataTable
和LoadFromDataTable
方法。
您需要將文本拆分爲'^'
以獲取所有行和每行'|'
以獲取所有字段。要獲得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();