[英]By using Syncfusion.XlsIO in c# to export excel file to json is there any way to define header cell that contain a space?
[英]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 的引用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.