使用 Syncfusion.XlsIO 将 .xlsx 文件转换为 .csv - 空引用异常
Converting a .xlsx file to .csv using Syncfusion.XlsIO - Null reference exception
我在 blob 存储中有一个 .xslx 格式的文件,我正在尝试使用 Syncfusion.XlsIO Nuget 包将其转换为 .csv 格式。
我试过以下方法:
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", ",");
}
}
当我调试时,文件名成功检索,但应用程序在 using (ExcelEngine excelEngine = new ExcelEngine())
中断并出现 NullReferenceException 错误。
我哪里错了?
此处定义了您可以执行此操作的方式:https://www.syncfusion.com/kb/9098/how-to-export-excel-data-to-csv-file
很可能,您不仅需要从 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:\ 上)。
谢谢,原来我缺少对 System.Drawing
nuget
的引用
我在 blob 存储中有一个 .xslx 格式的文件,我正在尝试使用 Syncfusion.XlsIO Nuget 包将其转换为 .csv 格式。
我试过以下方法:
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", ",");
}
}
当我调试时,文件名成功检索,但应用程序在 using (ExcelEngine excelEngine = new ExcelEngine())
中断并出现 NullReferenceException 错误。
我哪里错了?
此处定义了您可以执行此操作的方式:https://www.syncfusion.com/kb/9098/how-to-export-excel-data-to-csv-file
很可能,您不仅需要从 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:\ 上)。
谢谢,原来我缺少对 System.Drawing
nuget