如何将xls流文件转换为xlsx流而不保存到硬盘

时间:2015-05-17 03:04:21

标签: c# excel

我的C#应用​​程序需要从Excel文件中插入数据。我正在使用Epplus库来读取Excel文件。问题是Epplus不能与Excel 2003 XLS文件一起使用,因此我需要将XLS格式转换为XLSX格式。

要将XLS转换为XLSX,我必须将XLS保存到硬盘。然后我必须读取XLS文件并保存一个新的XLSX文件,以便我的硬盘上有2个文件。

无论如何我是否可以将XLS格式的文件转换为XLSX格式而不保存物理文件?

这是我的代码:

if (extention == ".xls")
{
  string serverPath = HttpContext.Current.Server.MapPath("~/TempData");

  if (!Directory.Exists(serverPath))
  {
      Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~")+ "\\Tempdata");
  }

  string fn = serverPath + "\\" + file.FileName;
  file.SaveAs(fn);

  string fileName = file.FileName.Replace(extention, "");
  string fullName = serverPath +"\\"+ fileName +  ".xlsx";

  var app = new Microsoft.Office.Interop.Excel.Application();
  app.Visible = false;
  try
  {
     var wb = app.Workbooks.Open(fn);
     wb.SaveAs(Filename: fullName , FileFormat: Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook);
     wb.Close(0);
     app.Quit();

     xlsStream = new FileStream(fullName, FileMode.Open);

   }
   catch (Exception ex)
   {
     app.Quit();
     _logger.InsertLog(LogLevel.Error, ex.Message, ex.Message);
   }
 }

0 个答案:

没有答案