'', шестнадцатеричное значение 0x1A, является недопустимым символом

Я использую closeXML, чтобы взять данные и поместить их в файл Excel.

Код, с которым я работаю, работает, с 99% файлов, которые я загружаю через приложение, но время от времени я получаю сообщение об ошибке с файлом. (нет, это не проблема отладки)

Проблема должна быть связана с данными, однако я не знаю, как это решить.

Код, который я использую,

Public Sub WriteToExcel(dt As DataTable, filePath As String)

    Dim workbook = New XLWorkbook()
    Dim worksheet = workbook.Worksheets.Add(dt, "Call Validate Export")
    Try
        workbook.SaveAs(filePath)
        Process.Start(filePath)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

При сохранении файла получаю ошибку

'', шестнадцатеричное значение 0x1A, является недопустимым символом.

между '' есть маленькая стрелка, указывающая вправо.

При чтении файла в таблицу данных он читается нормально, глядя на файл, я не вижу шестнадцатеричных символов.

Считываемый файл представляет собой CSV-файл с разделителями ^.

Итак, мой вопрос заключается в том, как проверить и исправить\заменить неверные символы в выводе, что позволит мне сэкономить 100% времени.


person Simon Price    schedule 20.04.2016    source источник
comment
Это замещающий символ, который не следует включать в обычный текст и, вероятно, нельзя включать в строки. в файлах Excel. Попробуйте перебрать свой datatable и удалить все вхождения символа.   -  person Raidri    schedule 20.04.2016


Ответы (3)



@Саймон,

Похоже, что бы вы ни пытались экспортировать в Excel, оно содержит недопустимые символы (стрелка указывает вправо).

Я получал аналогичную ошибку, и после подробного изучения я узнал, что экспортирую DataTable в Excel, и одно из значений ячейки DataTable выглядело так:

Обратите внимание -> Некоторый комментарий (Здесь -> на самом деле один символ: стрелка указывает вправо)

Я удалил эти символы, и теперь все работает нормально.

Надеюсь это поможет.

person Bharat Mori    schedule 31.08.2016

https://github.com/ClosedXML/ClosedXML/pull/66 — это запрос на вытягивание который может решить вашу проблему. Пожалуйста, попробуйте.

person Francois Botha    schedule 14.10.2016