C# 使用Syncfusion.XlsIO将.xlsx文件转换为.csv-空引用异常
我在blob存储中有一个.xslx格式的文件,我正在尝试使用Syncfusion.XlsIO Nuget包将其转换为.csv格式 我尝试了以下方法:C# 使用Syncfusion.XlsIO将.xlsx文件转换为.csv-空引用异常,c#,excel,.net-core,syncfusion,C#,Excel,.net Core,Syncfusion,我在blob存储中有一个.xslx格式的文件,我正在尝试使用Syncfusion.XlsIO Nuget包将其转换为.csv格式 我尝试了以下方法: private async Task ConvertExcelToCsv() { var fileName = await _fileStore.GetContainerFileAsync(AppSettingsConstants.FileNames.Container, "myf
private async Task ConvertExcelToCsv()
{
var fileName = await _fileStore.GetContainerFileAsync(AppSettingsConstants.FileNames.Container, "myfile.xlsx");
using (ExcelEngine excelEngine = new ExcelEngine())
{
var application = excelEngine.Excel;
var workbook = application.Workbooks.Open(fileName.Name);
var worksheet = workbook.Worksheets[1];
worksheet.SaveAs("myfile.csv", ",");
}
}
调试时,文件名被成功检索,但应用程序在上使用(ExcelEngine ExcelEngine=new ExcelEngine())
中断,并出现NullReferenceException错误
我哪里出了问题?这里定义了您可以使用的方法: 很可能,您不仅需要从NuGet安装
Syncfusion.XlsIO.WinForms
,还需要从System.Drawing.Common
和System.Security.Permissions
安装
这一准则起了作用:
try
{
//Initialize ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
//Initialize Application
IApplication application = excelEngine.Excel;
//Set default version for application
application.DefaultVersion = ExcelVersion.Excel2013;
//Open a workbook to be export as CSV
IWorkbook workbook = application.Workbooks.Open(@"E:\Users\Public\Documents\" + "ExcelFile.xlsx");
//Accessing first worksheet in the workbook
IWorksheet worksheet = workbook.Worksheets[0];
//Save the workbook to csv format
worksheet.SaveAs("Output.csv", ",");
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
throw;
}
确保您具有访问Excel文件的权限。通常,如果您使用保存在另一个驱动器上而不是安装Windows的驱动器上的文件(例如,e:\,如果Windows在C:\)对其进行测试会有所帮助。谢谢,原来我缺少对
系统的参考。绘图nuget显示完整的堆栈跟踪。