РУКОВОДСТВО · ОБНОВЛЕНО 2026-10-30
CSV после нейросети: как не превратить текст в формулу Excel
Проверки на границе между текстовым ответом модели и файлом, который откроют в табличной программе.
Ответ нейросети следует считать недоверенными данными даже после проверки JSON. Если приложение переносит строки в CSV, табличная программа может интерпретировать часть значений как формулы. Обычное заключение ячейки в кавычки решает разбор CSV, но не гарантирует безопасного открытия в Excel. Защиту применяют при экспорте по правилам конкретного потребителя. Сохраняйте исходные значения отдельно и проверяйте итоговый файл в тех программах, которыми действительно пользуются получатели.
1. Определите путь данных до таблицы
Проследите, какие поля ответа модели попадут в файл: имена, комментарии, описания и ссылки. Модель может повторить опасную строку из исходного документа, даже если пользователь не просил создать формулу. Зафиксируйте формат экспорта, разделитель и программу получателя. Если документ предназначен только для машинной загрузки, не смешивайте этот контракт с файлом для ручного просмотра. Разные потребители могут по-разному интерпретировать одинаковые байты CSV.
2. Разделите синтаксис и интерпретацию
Сначала корректно сериализуйте CSV библиотекой: разделители, переносы и кавычки должны сохранять границы ячеек. Затем примените отдельную политику для значений, которые приложение-получатель может принять за формулу. OWASP описывает CSV Injection как интерпретацию недоверенных данных табличной программой. Нельзя считать универсальным исправлением удаление одного символа из всей строки. Учитывайте начало ячейки после разбора, ведущие управляющие символы и возможные преобразования при импорте.
3. Выберите представление без потери смысла
Для просмотра можно предложить формат с явно текстовыми ячейками, если используемая библиотека и программа это поддерживают. При защитном преобразовании CSV сохраняйте исходный вариант в системе и объясняйте, почему экспорт отличается. Отрицательные суммы и телефонные номера должны оставаться полезными данными. Не заменяйте все подозрительные значения пустотой молча: это создаёт другую ошибку. Для повторного импорта проверяйте, не меняет ли выбранная защита исходный бизнес-смысл поля.
4. Проверьте настоящий файл и повторное сохранение
Соберите безопасные контрольные строки с разделителями, кавычками, переводами строк, отрицательными числами и формулоподобным началом. Не используйте команды с внешним эффектом для теста. Откройте файл в целевых версиях таблиц, проверьте типы ячеек и повторное сохранение. Автоматическая проверка сериализатора нужна, но не заменяет этот шаг. Зафиксируйте поддерживаемый сценарий и показывайте предупреждение, если пользователь выбрал другой способ импорта.
Частые вопросы
Достаточно ли попросить модель не писать формулы?
Нет. Модель может скопировать строку из документа. Контроль должен выполняться приложением при экспорте независимо от промпта.
Почему правильный JSON не решает проблему?
Схема подтверждает структуру и тип строки. Она не определяет, как Excel интерпретирует значение после переноса в CSV.
Можно ли просто убрать знак равенства?
Одна замена не покрывает все варианты импорта и может испортить данные. Нужна проверенная политика для выбранного получателя.
Нужно ли менять оригинал ответа?
Лучше хранить оригинал отдельно от представления для просмотра. Это позволяет проверить преобразование и восстановить смысл исходного значения.