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

April 2026

S M T W T F S
    1 2 34
56 7 8 9 1011
12 13 14 15 161718
19 20 21 22 23 2425
26 27 28 29 30  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 4th, 2026 11:31 pm
Powered by Dreamwidth Studios