2012-06-15 94 views

回答

1

您可以閱讀文本文件轉換成字符串,兩次分割字符串:

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

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

首先拆分的文本文件,以行,然後每行拆分列。

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(); 
相關問題