使用EPPlus将制表符分隔的文件导出到Excel

我正试图导出到Excel包含两列的制表符分隔的文件。 我无法find显示如何使用EPPlus执行此操作的示例。 我见过的大多数例子都与LoadFromDatabase有关。 我的猜测是读取文件并将数据存储为数组或数组列表,然后执行LoadFromArrays。

来自文件的数据看起来像这样:

RFID注释ABC245添加到系统中的设备BBT988未find设备GBN471已售设备

以下是我尝试编写代码以执行导出到Excel。 目前,我正在收到一个投射错误,试图绕过它。 我正在寻找的是得到什么是正确和有效的方式来编写代码来执行操作的反馈。 先谢谢你!

Dim fLoc As String fLoc = Server.MapPath(".") Dim tFile As StreamReader tFile = File.OpenText(fileLoc) Dim writeLn As String writeLn = tFile.ReadToEnd Response.Write(writeLn) fLoc = Server.MapPath(".") & "/maindirectory" & param1 & param2 tFile = File.OpenText(fileLoc) writeLn = "" writeLn = tFile.ReadToEnd writeLn = RTrim(writeLn) Dim aList As New ArrayList aList.Add(writeLn) Dim attachment as String attachment = "attachment; filename=" + "sheet.xlsx" Dim xlPack As ExcelPackage = New ExcelPackage() Dim ws As ExcelWorksheet = xlPack.Workbook.Worksheets.Add(sheet) Dim ms As MemoryStream = New MemoryStream() ws.Cells(1, 1).LoadFromArrays(aList) xlPack.SaveAs(ms) ms.WriteTo(Response.OutputStream) 

使用ExcelTextFormatparsing文件,如果需要也可以设置一些原始数据types的列/单元格格式。 例如用这个制表符分隔的数据:

 Header 1 Header 2 0 03/22/2017 18:03 1 03/23/2017 18:03 2 03/24/2017 18:03 3 03/25/2017 18:03 4 03/26/2017 18:03 

生成Excel文件:

 Dim excelTextFormat = New ExcelTextFormat() excelTextFormat.Delimiter = vbTab excelTextFormat.DataTypes = New eDataTypes() _ { eDataTypes.Number, eDataTypes.DateTime } Using package = New ExcelPackage(New FileInfo(output)) package.Workbook.Worksheets.Add("sheet1") Dim ws = package.Workbook.Worksheets(1) ws.Column(2).Style.Numberformat.Format = "mm/dd/yyyy" ws.Cells("A1").LoadFromText(input, excelTextFormat) package.Save() End Using 

输出:

在这里输入图像说明