"Компьютерная газета" №26, 1999 год
Register now - Попробуй заработать
Get your 39$ - Получи чек! | FREE web site and $20 cash over & over!
Return at title page - Возврат на основную страницу |
Использование Excel 97 - не сядьте на мель!
Одной из многочисленных полезных функций Excel 97 является сохранение таблиц в форматах различных баз данных. Это можно применить, например, для обмена данными между книгой Excel и другими программами. Недавно мне пришлось решать следующую задачу - в книге на множестве листов помесячно рассчитываются вредные выбросы в атмосферу от производства и налоги за них, а результаты необходимо передавать в вышестоящее ведомство в виде базы .DBF, пустой образец которой уже имеется.
Сначала все кажется очень просто. Открываем в Excel свою книгу, а потом и эту базу, которая представляется как единственный лист. Щелкаем правой кнопкой мыши по названию этого листа, выбираем действие "Переместить/Скопировать" и в списке открытых документов выбираем свою книгу - <Ok>. Теперь в своей книге имеем дополнительный лист, в первой строке которого прописаны названия полей базы данных.
Далее рутина - копируем нужные столбцы данных расчетов, переходим в дополнительный лист, выбираем пункт меню "Правка\Специальная вставка", отмечаем "Только значения" - <Ok>. Потом все запишем в виде макроса, а сейчас продолжаем.
Сохраняем дополнительный лист как базу DBF, потом сохраняем опять как книгу Excel. Запускаем старый добрый Norton 5.0 в сессии DOS, выбираем полученную базу DBF, нажимаем F3 - запускается dbview для просмотра - и . . . ничего не видим!!! Поля, структура - все как надо, но никаких записей с результатами нет - база пуста. Это было настолько неожиданно, что я не поверил собственным глазам.
В недоумении внимательно повторяем все операции снова и снова и наблюдаем все тот же печальный результат. После нескольких дней начинается уже помутнение рассудка и небольшая паника. Обязательства взяты, работу надо выполнить, а Excel не хочет. От горя покопался в руководстве Microsoft по программированию в Visual Basic и убедился в стойкости афоризма "За деревьями и леса не видать".
Тут и выясняется одна ма-а-ленькая деталь. Когда Excel открывает базу DBF, он "запоминает", сколько там было полей. И сколько чего бы вы туда не писали, он сохранит в формате DBF ровно столько полей, сколько там было раньше. А если вы по наивности открыли пустую базу DBF, то он и сохранит ее как пустую, даже если там будут заполнены все ячейки до единой.
Теперь, когда Слава Богу все ясно, нужно всего-то добавить достаточно пустых записей в первоначальную базу DBF и заново повторить все операции - открыть, переместить, скопировать, вставить, сохранить ...
Средствами MS Office делается примитивно просто - запускаем Access, создаем пустую базу данных, в ней выбираем закладку "Таблицы", нажимаем "Создать" и выбираем "Связанная таблица". В диалоге выбора файла БД указываем тип файлов *.DBF и свою базу данных - <Ok>. Диалог выбора индексного файла можно отменить. Теперь открываем таблицу для редактирования, добавляем сотню-другую записей с помощью любимой народом клавиши <Enter>, сохраняем и закрываем Access.
Заново все прокручиваем в Excel, проверяем - все в порядке. Правда, с записями получился перебор - кроме заполненных, в базе сохранен и весь запас пустых записей. Но с этим похоже придется мириться - по крайней мере лучше иметь слишком много чем совсем ничего.
Можно, конечно поработать побольше и получить более приемлемый результат. С помощью Нортоновского dbview по клавише F2 получаем подробную структуру БД. Создаем новый лист, в ячейках первой строки вручную прописываем имена полей базы данных (без пробелов и не более 10-ти сомволов). Затем выделяем столбец с именем поля и через меню "Формат/Ячейки" устанавливаем тип данных поля и количество знаков после запятой для числового типа. Обязательно установите требуемую ширину столбца - целое значение ширины воспринимается Excel как количество знаков для данных поля базы. И так для каждого столбца с именем поля БД.
Теперь можно вставить нужные данные и сохранить как базу DBF, только потом обязательно сохраните как книгу Excel и для последующей работы открывайте именно эту книгу, а не базу DBF, иначе опять не сможете записать дополнительные записи.
Возможно, эти моменты и описаны где-нибудь в руководстве, но покажите мне пальцем на того человека, который прочитал абсолютно все, что там есть - лично у меня просто нет столько времени. Надеюсь, статья вам поможет.
Return at title page - Возврат на основную страницу |