我的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);
}
}