在Excel工作表中加载tsv / csv文件
这是我的代码。
public static string LoadPackage(DirectoryInfo outputDir, string name) { FileInfo newFile = new FileInfo(outputDir.FullName + @"\test.xlsx"); if (newFile.Exists) { newFile.Delete(); newFile = new FileInfo(outputDir.FullName + @"\test.xlsx"); } var format = new ExcelTextFormat(); format.Delimiter = '\t'; format.SkipLinesBeginning = 1; using (ExcelPackage package = new ExcelPackage()) { LoadSheet(package, outputDir, name); package.SaveAs(newFile); } return newFile.FullName; }
之后,我调用LoadSheet方法,以填补我的Excel文件从TSV文件。
public static void LoadSheet(ExcelPackage package, DirectoryInfo outputDir, string name) { var ws = package.Workbook.Worksheets.Add("Content"); var format = new ExcelTextFormat(); format.Delimiter = '\t'; format.SkipLinesBeginning = 2; format.SkipLinesEnd = 1; var range = ws.Cells["A1"].LoadFromText(new FileInfo(outputDir.FullName + "\\" + name), format, TableStyles.Medium27, false); }
这是我点击button事件的代码
if (BrowseFileUpload.HasFile) { var name = BrowseFileUpload.PostedFile.FileName; InputTextBox.Text = name; LoadData.LoadPackage(new System.IO.DirectoryInfo("C:\\Users\\Nemanja\\Downloads"), name); InfoLabel.Text = "Your data has been imported!!!"; InfoLabel.ForeColor = System.Drawing.Color.Blue; InfoLabel.Font.Size = 20; }
一切都好,我创build新的Excel文件,工作表保存它,但它不会加载数据,我需要它加载内部的Excel文件。 这只是空的文件,或者我得到一个错误的文件损坏恢复你可以。
有人可以根据我的解释和这个代码找出什么是一个问题。 谢谢你们所有的好人
我认为这个问题很可能是源数据的格式。 我已经把以下示例放在一起,根据您的代码,它工作正常。
var outFile = Path.ChangeExtension(filePath, ".xlsx"); using (var p = new ExcelPackage()) { var fmt = new ExcelTextFormat(); fmt.Delimiter = '\t'; fmt.SkipLinesBeginning = 2; fmt.SkipLinesEnd = 1; fmt.EOL = ((char)10).ToString(); // THIS LINE FIXED THE PROBLEM (UNIX NEWLINE) var ws = p.Workbook.Worksheets.Add("Imported Text"); ws.Cells[1, 1].LoadFromText(new FileInfo(filePath), fmt, TableStyles.Medium27, false); p.SaveAs(new FileInfo(outFile)); }
尝试通过这个运行你的数据,看看你是否得到相同的问题。
更新
问题是文件中有一个unix风格的换行符–EPPlus预设默认情况下是一个Windows风格的换行符
- C#&XLW 5 – 如何在Excel中显示明智的错误信息引发exception?
- 返回ExcelvariablesC#
- 使用C#读取ASP.net中的excel文件时,访问被拒绝
- 打开“用密码保护”的excel文件请求密码 – Excel 2007
- IRibbonUI.invalidate崩溃Excel 2010自定义function区COMexception0x80004005 …有时
- 如何连接C ++和Excel(从C ++程序输出到Excel电子表格)
- 将一个单元格的样式/格式复制到另一个单元格Excel Interop C#
- Azure – “Microsoft.ACE.OleDb.12.0”提供程序未在本地计算机上注册
- 用于电子表格操作的MS-Access / Excel的替代scheme