2013-09-20 2 views
1

Мне нужно написать краткую программу (с использованием Java, так как это единственный язык, на котором мне действительно нравится), который принимает файл Excel (или CSV) и задерживает данные, добавляя информацию, которая может отсутствовать.Лучше ли читать файл Excel или CSV-файл?

Проблема, заключающаяся в том, что я не могу решить, как начать, похоже, что манипулирование файлом Excel будет проще, но чтение через файл CSV будет очень простым.

Любое понимание проблем, которые могут возникнуть, или, может быть, третьего решения, которое я игнорирую.

Документ Excel в основном представляет собой только мини-аудированную базу данных IP-адресов, имен, производителей и местоположений принтера.

Редакция: Общий консенсус, похоже, заключается в том, что CSV намного проще манипулировать, и поскольку я хочу написать быстрый скрипт, который можно запустить, я думаю, что загрузка дополнительной библиотеки для excel-манипуляции была бы hassel.

Чтобы начать писать код сегодня или в понедельник, скорее всего, у вас будет больше вопросов позже на этой неделе. Спасибо всем за вашу помощь! Выйдя на новую территорию с моей первой работой.

+1

Если пользователи находятся в Excel, почему бы не использовать VBA (если логика не слишком сложна) или язык .net? Даже vba может принести достаточно хорошую производительность, если вы будете следовать основным рекомендациям по производительности (особенно с таким маленьким файлом). И вашим пользователям не нужно будет открывать вашу программу отдельно или сохранять свои данные в CSV и импортировать обратно. – assylias

+0

Ну, это будет реализовано нашей ИТ-командой, и в основном мы будем разорвать гигантскую базу данных наших принтеров, а затем я буду добавлять необходимые ИТ-данные и загружать их непосредственно в нашу справочную службу (через CSV), поэтому никакой фактический пользователь не будет будьте возиться с ним. Это мой собственный проект, и я буду его загружать каждый месяц. –

+0

@assylias Я полностью согласен с вами, отчасти потому, что это, как представляется, требование «одного выхода», поэтому производительность кажется несущественной (после заполнения отсутствующих данных, что еще может быть сделано?) Но я не уверен в «твоем пользователей ", поскольку они не упоминаются в ОП. – pnuts

ответ

1

Если вы читаете CSV, это вариант в вашей ситуации, я бы определенно пошел на это, потому что вы можете сделать это так, как системно-независимым, так и портативным, без использования внешних библиотек.

Насколько эффективность идет, время весьма вероятно, будет I/O доминирует, поэтому чем меньше файл. - тем быстрее вы будете читать его в

Добавление недостающей информации и записи файл назад может быть немного сложным из-за необходимости правильно обрабатывать кавычки, но он все еще намного проще, чем доступ к файлу Excel через специальную библиотеку.

+0

Я бы сказал, что есть некоторые исправленные накладные расходы на чтение файлов Excel из-за объектной модели, которая должна быть настроена.При использовании POI apache, например, для объекта «WorkBook» существует значительное время строительства. –

+0

Хорошо, это приятно знать. Его не слишком большой файл, он будет около 500 х 10 ячеек в excel. Я не понимал, что вам нужно загрузить библиотеку jxl для Excel. –

+0

Еще один вопрос: если у вас есть доступ к файлу excel, вы всегда сможете получить доступ к CSV-файлу, так как excel имеет возможность сохранять/экспортировать его в виде файла CSV? –

1

CSV willl будет проще, поскольку вам не нужны дополнительные библиотеки, такие как jxl. См. Это read and write CSV tutorial

+0

Спасибо за ссылку! Я обязательно прочитаю это. –

0

500x10 действительно довольно мало, поэтому трудно представить, что потребуется много кода. Если вы придерживаетесь Excel своими встроенными функциями (Find/Replace, Sort, Filter, PivotTable, Copy down и т. Д.), Я бы ожидал, что этого будет достаточно.

Смежные вопросы