Ответ 1
CSV, как формат файла, принимает одну "таблицу" данных; в терминах Excel, что один лист книги. Хотя это простой текст, и вы можете его интерпретировать любым способом, "стандартный" формат CSV не поддерживает то, что думает ваш супервайзер.
Вы можете выдумать, что вы хотите несколькими способами:
-
Используйте для каждого листа другой файл с родственными, но отличными именами, например "Book1_Sheet1", "Book1_Sheet2" и т.д. Затем вы можете найти группы связанных файлов по тексту перед первым подчеркиванием. Это проще всего реализовать, но требует, чтобы пользователи шли по нескольким файлам на одну логическую "рабочую книгу", и если вы потерялись в тасовании, вы потеряли эти данные.
-
Выполните вышеуказанные действия, а также "запишите" файлы в один архив, который вы можете перемещать. Вы сохраняете чистое преимущество CSV в вышеуказанной опции, плюс удобство перемещения одного файла вместо нескольких, но недостаток в том, что вам нужно застегнуть/распаковать архив, чтобы получить фактические файлы. Чтобы облегчить боль, если вы работаете в .NET 4.5, у вас есть доступ к встроенной реализации ZipFile, а если вы не используете DotNetZip с открытым исходным кодом или SharpZipLib, любой из которых позволит вам программно создавать и потребляют стандартные ZIP файлы Windows. Вы также можете использовать почти универсальную комбинацию .tar.gz(aka.tgz), но вашим пользователям потребуется либо ваша программа, либо сторонний инструмент сжатия, например 7Zip или WinRAR, для создания архива из набора экспортированных CSV.
-
Внедрение формата квази-CSV, где пустая строка (содержащая только новую строку) действует как "разделитель вкладок", и ваш синтаксический анализатор ожидает новую строку заголовков столбцов, за которой последуют строки данных в новой конфигурации. Этот вариант стандартного CSV может не читаться другими пользователями CSV, поскольку он не соответствует ожидаемому файловому формату, и поэтому я бы рекомендовал вам не использовать расширение ".csv", поскольку оно будет запутывать и расстраивать пользователей, ожидающих чтобы иметь возможность открывать его в других приложениях, таких как электронные таблицы.