CVS Excel

Feb. 14th, 2012 09:36 am
green_fr: (Default)
[personal profile] green_fr
Скажите, а кто-нибудь хранит Excel в CVS (или ему подобных системах)?

Основной вопрос - сравнение двух версий файла. Я согласен на множество упрощений, например полностью отказаться от сравнения форматирования, даже от формул - только данные. Но я порылся в Internet'е, ничего приличногов упор не нахожу. А наши программеры предлагают перейти на Google Docs - при всём моём уважении к этой фирме, мне это пока что кажется опасной утопией.

С другой стороны, последние версии Excel сохраняют файлы в формате XML-ZIP, про который я уже когда-то спрашивал, но для которого тоже пока что решения не нашёл...

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

Date: 2012-02-14 08:54 am (UTC)
From: [identity profile] mopexod.livejournal.com
Если надо только данные - хранить в CSV (comma separated values). Это текстовый формат, эксель его считает более-менее родным.

Date: 2012-02-14 08:56 am (UTC)
From: [identity profile] mopexod.livejournal.com
Пардон, если непонятно из-за похожести аббревиатур: сохранять эксельные данные не в .xls файлах, а в .csv. А их уж и класть в version control, они должны хорошо сравниваться.

Date: 2012-02-14 09:02 am (UTC)
From: [identity profile] green-fr.livejournal.com
Да, я регулярно пытаюсь поправить по этому поводу кашу в головах у коллег :-)
Меня как-то порадовала в документации одного процесса фраза "конвертировать текстовый файл в формат Excel" - на деле надо было переименовать .txt в .xls (даже не .cvs), и Excel действительно подхватывал данные почти что автоматически :-/

Date: 2012-02-14 09:09 am (UTC)
From: [identity profile] mopexod.livejournal.com
Да, компьютерная грамотность - вещь относительная :)

Date: 2012-02-14 09:00 am (UTC)
From: [identity profile] green-fr.livejournal.com
Технически это могло бы пройти, но фактически нет - файлы довольно сложные, с множеством закладок, которые не хочется разрывать. Ну и форматирование всё же есть - я сегласен отказаться от отслеживания изменений в нём, но не от него самого.

Date: 2012-02-14 09:10 am (UTC)
From: [identity profile] mopexod.livejournal.com
Понятно. Буду посматривать комментарии - может чего дельного предложат.

Date: 2012-02-14 09:37 am (UTC)
From: [identity profile] fima.livejournal.com
Единственный способ автоматически учитывать будущие версии экселя - это полностью от него отказаться :-)
Теоретически единственное возможное решение могло бы быть только от майкрософта, т.е его sourcesafe (или как там это нынче называется) мог бы разгребать формат, находить разницу и ее достойно показывать. Для сторонних программ это совершенно нереальная задача, слишком дорога поддержка.
Что касается вроде-как-открытого формата xlsx, то судя по тому, как часто мне приходится править парсер, вытаскивающий данные из него, майкрософт не стоит на месте.
Единственный выход я вижу в использовании csv, как уже написали ранее, но смотреть на его диффы довольно уныло, особенно, если поменяли колонку, а не строку.

Date: 2012-02-14 10:38 am (UTC)
From: [identity profile] aaalex.livejournal.com
Хранить в CVS как бинарные файлы. Сравнивать и мержить сторонними утилитами. В ворде есть compare/merge. В екселе такого нет, но гугл много чего находит. Начиная с

http://superuser.com/questions/18626/how-do-i-compare-two-excel-documents

Date: 2012-02-14 12:42 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Я именно это и хочу сделать, уже поискал в google, перепробовал несколько, теперь вот ищу кого-нибудь, кто бы поделился опытом нормально работающей программы :-)

Date: 2012-02-14 01:45 pm (UTC)
From: [identity profile] nikita goncharenko (from livejournal.com)
Не до конца понятна задача.
Но если нужно сравнить два CSV файла, не учитывая, скажем, каких-то колонок (строчки можно было бы и WinMerge сравнивать), то мы делали так (но это работало для нас, может я неверно понял вашу задачу):
1. Берем LogParser (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24659)
2. Пишем запрос, который бы выбросил те колонки, которые хотим выбросить из сравнения. Плюс, если нужно, сортировка
3. Исполняем этот запрос на двух версиях файла, которые нужно сравнить и результат сохраняем в отдельные файлы.
4. Сравниваем эти два результата любой тулзой для сравнения.

Этот метод легко автоматизируется. У нас он бежит по ночам на сотнях файлов.

Date: 2012-02-14 01:55 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Да, не совсем то, что надо.
Во-первых, у меня не текстовый CVS, а бинарный XLS. Во-вторых, не хочется писать ничего, потому что некому потом всё это поддерживать. Нужно какое-то готовое (платное, бесплатное, но живучее) решение. И результат сравнения должен быть по простоте чтения сравним с результатом стандартного diff'а, то есть полоьзователи совсем не программисты, они и diff'а-то пугаются.
В идеале - программа, которая прикручивается к CVS, и которая по клику compare with выдаёт картинку сравнения двух файлов.

Date: 2012-02-14 01:56 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Вот и я опечатался - вместо "текстового CVS" следует читать "текстовый CSV", конечно же :-)

Profile

green_fr: (Default)
green_fr

June 2025

S M T W T F S
123 4 567
89 1011 12 1314
15 16 1718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 17th, 2025 04:32 pm
Powered by Dreamwidth Studios