Импорт файла XLSX с использованием ExcelPackage выдает ошибку .NET CORE - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть jquery, куда я экспортирую свою таблицу как файл xlsx, используя data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8.Когда я хочу импортировать этот файл (обновлено), я делаю это с помощью этой функции

public static Dictionary<string, string> GetTableFromData(string data, string root)
    {
        if (string.IsNullOrEmpty(data))
        {
            return null;
        }
        var myString = data.Split(new char[] { ',' });
        byte[] bytes = Convert.FromBase64String(myString[1]);
        string fileName = Guid.NewGuid().ToString() + ".xlsx";
        string path = Path.Combine(root, "excel", fileName);
        using (Stream file = File.Create(path))
        {
            file.Write(bytes, 0, bytes.Length);
        }
        FileInfo fileInfo = new FileInfo(path);

        using (ExcelPackage package = new ExcelPackage(fileInfo))
        {
            ExcelWorksheet workSheet = package.Workbook.Worksheets[$"{fileName}"];
            int totalRows = workSheet.Dimension.Rows;

            Dictionary<string, string> languageDictionaries = new Dictionary<string, string>();

            for (int i = 1; i <= totalRows; i++)
            {
                languageDictionaries.Add(workSheet.Cells[i, 1].Value.ToString(), workSheet.Cells[i, 2].Value.ToString());
            }

            return languageDictionaries;
        }
    }

И ExcelPackage всегда выдает меня и выдает ошибку, говорящую 'The file is not an valid Package file. If the file is encrypted, please supply the password in the constructor

И я попытался сделать какой-нибудь тест xlsxфайл в Excel, и когда я импортирую этот тестовый файл, создается экземпляр package.Я пробовал другие решения и не могу понять, что является причиной этой проблемы.

1 Ответ

2 голосов
/ 04 апреля 2019

Вы можете поместить HTML в файл и дать ему расширение XLSX, и Excel может сделать все возможное, чтобы преобразовать его в электронную таблицу, но это не делает этот файл допустимым файлом XLSX.

Если вы хотите программно прочитать файл Excel, убедитесь, что это действительный файл Excel.

...