Ищу класс для создания файлов CSV Excel.
Ожидаемые характеристики:
- Чрезвычайно прост в использовании
- Избегает запятых и кавычек, поэтому excel отлично справляется с ними
- Экспорт даты и времени в формате с учетом часового пояса
Вы знаете какой-нибудь класс, способный на это?
Ответы:
Немного другая версия, которую я написал, используя отражение для своих нужд. Пришлось экспортировать список объектов в csv. На случай, если кто-то захочет использовать его в будущем.
Пример использования: (обновляется за комментарий)
источник
public string Export()
метод и не изменить другой метод наpublic string Export(bool includeHeaderLiner = true)
(со значением параметра по умолчанию). Опять же, я не уверен, были ли параметры по умолчанию доступны в 2011 году, но текущий код мне кажется ортодоксальным.пожалуйста, прости меня
Но я думаю, что общедоступный репозиторий с открытым исходным кодом - лучший способ поделиться кодом и внести вклад, исправления и дополнения вроде «Я исправил это, я исправил это».
Итак, я сделал простой git-репозиторий из кода стартера темы и всех дополнений:
https://github.com/jitbit/CsvExport
Еще я сам добавил пару полезных исправлений. Каждый может добавлять предложения, создавать форки и т.д. и т.п.
PS. Я разместил все уведомления об авторских правах для Криса. @ Крис, если ты против этой идеи - дай мне знать, я убью его.
источник
Еще одно хорошее решение для чтения и записи CSV-файлов - filehelpers (с открытым исходным кодом).
источник
Как насчет использования string.Join вместо всех циклов foreach?
источник
String.Join("," , List<string>)
тоже работает.Если кто-нибудь захочет, я преобразовал это в метод расширения в IEnumerable:
источник
отличная работа над этим классом. Легко и просто использовать. Я изменил класс, чтобы включить заголовок в первую строку экспорта; решил, что поделюсь:
использовать:
класс:
источник
есть библиотека с открытым исходным кодом для CSV, которую вы можете получить с помощью nuget: http://joshclose.github.io/CsvHelper/
источник
Я добавил ExportToStream, чтобы CSV не нужно было сначала сохранять на жесткий диск.
источник
я добавил
Предыдущий код не работает со старыми версиями .NET. Для версии 3.5 используйте другую версию:
источник
Большое спасибо за это! Я изменил класс на:
MakeValueCsvFriendly
Код:
источник
Вы также можете использовать ADO для этого: http://weblogs.asp.net/fmarguerie/archive/2003/10/01/29964.aspx
источник
У исходного класса есть проблема, и если вы хотите добавить новый столбец, вы получите KeyNotFoundException в методе экспорта. Например:
Чтобы решить эту проблему, и используя идею @KeyboardCowboy об использовании отражения, я изменил код, чтобы разрешить добавление строк, которые не имеют одинаковых столбцов. Вы можете использовать экземпляры анонимных классов. Например:
Вы можете скачать исходный код здесь CsvExporter . Не стесняйтесь использовать и изменять.
Теперь, если все строки, которые вы хотите записать, принадлежат к одному классу, я создал общий класс CsvWriter.cs , который лучше использует оперативную память и идеально подходит для записи больших файлов. Кроме того, он позволяет добавлять средства форматирования к нужному типу данных. , Пример использования:
источник
Для этого вам понадобится всего 1 функция. Вам нужно только создать папку в обозревателе решений и сохранить там файл csv, а затем экспортировать этот файл пользователю.
Как и в моем случае у меня есть папка с загрузками. Сначала я экспортирую весь свой контент в этот каталог, а затем экспортирую его пользователю. Для обработки response.end я использовал ThreadAbortException. Так что в моем решении это 100% настоящая и рабочая функция.
источник