Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Автоматизированный перенос данных из формата Microsoft Excel 97-2003 и Excel 2007 в базу данных MySQL

Тип: контрольная работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Автоматизация процесса разбора данных файла с расписанием занятий Института Естественных наук и Биомедицины САФУ. Перенос данных из таблицы, содержащей расписание института в базу данных, находящуюся на вэб-сервере. Написание алгоритма работы приложения.
Краткое сожержание материала:

Размещено на

16

Размещено на

Кафедра Информатики, ВТ и МПИ

КОНТРОЛЬНАЯ РАБОТА

По дисциплине Мультимедиа-технологии

На тему Автоматизированный перенос данных из формата Microsoft Excel 97-2003 и Excel 2007 в базу данных MySQL

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
  • 1. ПРОБЛЕМНАЯ ОБЛАСТЬ
  • 2. ПОСТАНОВКА ЗАДАЧИ
  • 3. АНАЛИЗ ИСХОДНЫХ ДАННЫХ
    • 3.1 Общие сведения о форматах файлов .xls и .xlsx
    • 3.2 Данные, содержащиеся в исходном файле
  • 4. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
  • 5. АЛГОРИТМ РАБОТЫ ПРИЛОЖЕНИЯ
  • 6. РЕАЛИЗАЦИЯ АЛГОРИТМА
  • 7. ТЕСТИРОВАНИЕ И ОТЛАДКА
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ВВЕДЕНИЕ

Формат файлов Excel является широко используемым форматом хранения табличной информации. На данный момент наиболее широко применяется формат .xls, применяющийся в программных пакетах Microsoft Excel 97-2003. Более простым, но менее распространённым в силу своей новизны является формат .xlsx, применяемый в Microsoft Excel, начиная с версии 2007.

Целью работы является автоматизация процесса разбора данных файла с расписанием занятий Института Естественных Наук и Биомедицины САФУ (образец файла находится см. в прикрепленных файлах). Необходимо считать данные из файла и перенести их в базу данных MySQL.

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

Для простоты разработки приложения в качестве локального сервера используется Denwer, языком, на котором разработано предлагаемое решение, является PHP, для ускорения процесса разработки приложения использована библиотека PHPExcel, доработанная для решения поставленной задачи.

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

1. ПРОБЛЕМНАЯ ОБЛАСТЬ

Один раз в неделю для Института Естественных Наук и Биомедицины составляется расписание, сохраняемое в формате таблиц Excel. Для переноса на сайт института данные из таблицы на данный момент обрабатываются вручную. Поскольку на данный момент расписание составляется для тридцать одной группы, перенос данных занимает длительное время. Объектом курсовой работы являются форматы файлов .xls и .xlsx, а также средства, предназначенные для чтения и обработки их текстового содержимого в среде вэб-сервера. Предметом выполненной работы является перенос данных из таблицы, содержащей расписание института в базу данных, находящуюся на вэб-сервере.

2. ПОСТАНОВКА ЗАДАЧИ

Необходимо создать приложение, работающее на локальном вэб-сервере, написанное на языке программирования PHP. Приложение должно осуществлять корректный перенос данных из файла формата .xls или .xlsx в базу данных MySQL вэб-сервера.

Для создания данного приложения необходимо выполнить этапы:

- Анализ исходных данных

- Проектирование базы данных в соответствии с исходными данными

- Написание алгоритма работы приложения

- Реализация алгоритма

3. АНАЛИЗ ИСХОДНЫХ ДАННЫХ

3.1 Общие сведения о форматах файлов .xls и .xlsx

автоматизация занятие сервер база

Несмотря на то, что формат .xls является закрытым, сведения о структуре формата можно найти в открытом доступе. Начиная с версии формата Excel 7.0, данные таблиц и листов хранятся в BIFF8 (Binary Interchange File Format) формате, инкапсулированные в контейнер OLE2. OLE файл состоит из так называемых виртуальных потоков. Виртуальный поток - это данные, которые читаются как линейный поток, хотя их физическое расположение в файле может быть фрагментировано. Это могут быть данные пользователя или структуры, контролирующие работу файла.

OLE файл построен как файловая система. Все пространство файла разбито на сектора. Размер сектора определяется при создании файла и, как правило, равен 512 байтам. Виртуальный поток состоит из последовательности секторов. Сектора нумеруются от -1 (Header) с шагом 1. Почти все переменные ссылаются на номер сектора, а не на смещение.

BIFF структура представляет собой подряд идущие записи. Все записи имеют следующий общий формат: ID (2 байта), Размер данных, sz (2 байта), Данные (sz байт)

Первые 4 байта (ID и размер) - это заголовок записи. Размер записи не включает размер заголовка. Все данные записываются в Intel-нотации.

Есть много стандартных записей Excel. Каждая внутри (секция данных) имеет свой определенный формат. Записи могут группироваться в потоки. Ограничителем групп служат 2 специальные записи: BOF (Begin Of File) и EOF (End Of File).

Формат файла .xlsx основан на Open XML и методе сжатия ZIP, что существенно облегчает работу с форматом. После распаковки архива, наибольший интерес представляет директория /xl/worksheets/, файлы /xl/sharedStrings.xml, /xl/workbook.xml.

В файле /xl/workbook.xml хранится описание листов, в файле xl/sharedStrings.xml содержатся текстовые данные из ячеек исходного документа со всех листов. В директории /xl/worksheets/ содержатся xml файлы, содержащие описание данных листов.

3.2 Данные, содержащиеся в исходном файле

Исходный файл содержит один лист, содержащий расписание института Естественных Наук и Биомедицины. Первая строка таблицы содержит номер курса и все группы с номерами специальностей. Вторая строка содержит номера групп и указание подгруппы.

Столбцы, нахдящиеся непосредственно под номером курса содержат дни недели, число и порядковые номера занятий в расписании. Далее идут столбцы, находящиеся под ячейками, содержащими номера групп и подгрупп, содержащие название проводимого занятия, ФИО преподавателя и, иногда, номер аудитории.

Ячейки таблицы, содержащие наименование занятий, проводимых совместно у нескольких групп, объединяются горизонтально в одну. Ячейки, содержащие события, занимающие длительное время, например сессия или каникулы, объединяются вертикально (см. Рисунок 1).

Рисунок 1 - Пример исходных данных

4. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Информационная система (сайт Института Естественных Наук и Биомедицины), с которой в дальнейшем будет работать приложение, выводит информацию в виде таблицы, содержащей номер курса, наименование специальности, номер учебной группы, подгруппа и название специальности, дни недели, число, на которое составлено расписание, время начала и конца занятий, названия проводимых занятий.

Всё вышеперечисленное, кроме времени начала и конца занятия можно получить из исходного файла, содержащего расписание занятий, но эти данные можно вычислить, исходя из порядкового номера занятия в таблице.

Исходя из данных, перечисленных выше, можно выявить следующие сущности, которые необходимо реализовать в виде отдельных таблиц базы данных:

- Курсы

- Группы (наименования специальностей)

- Номер группы и подгруппы

- Расписание для группы (подгруппы), содержащее поля, в которых записаны занятия, преподаватели, которые их проводят, номера аудиторий, номер занятия

5. АЛГОРИТМ РАБОТЫ ПРИЛОЖЕНИЯ

Алгоритм работы приложения изображён на рисунке 2.

Рисунок 2 - Алгоритм работы приложения

6. РЕАЛИЗАЦИЯ АЛГОРИТМА

Для реализации алгоритма была взята за основу PHP библиотека PHPExcel, где реализованы базовые функции извлечения данных обоих форматов файлов (.xls и .xlsx), такие как чтение OLE, разбор записей в BIFF, выбор данных из конкретных строк и ячеек таблицы. Таким образом, реализация самого алгоритма сводится к написанию загрузчика файлов на локальный сервер и разбору данных из массива с последующим внесением данных в локальную БД. Для выбора загружаемого и загрузки его на сервер файла используется javascript.

Рисунок 3 - Исходный код формы загрузки файла.

Далее, тремя вложенными циклами, перебираем дни недели расписания, имена групп, занятия групп, основываясь на том, что ежедневно в расписании стоит до 7 учебных занятий, каждая колонка с расписанием для подгруппы занимает 5 объединённых по ширине ячеек, ячейки, выделенные под описание одного занятия могут содержать наименование занятия, ФИО преподавателя и номер учебной аудитории. Полученные таким образом данные формируются в запрос, добавляющий данные в БД.

7. ТЕСТИРОВАНИЕ И ОТЛАДКА

При отладке при...

Другие файлы:

Использование списка Microsoft Excel в качестве базы данных
Представлены широкие возможности обработки информации формата Список, как базы данных MS Excel, а также примеры для углубленного освоения реального ис...

Табличный процессор Microsoft Excel 2010
Краткая история табличных процессоров. Интерфейс Microsoft Excel-2010. Документ Excel 2010. Типы данных в ячейках Excel. Диапазоны (массивы, блоки) в...

Расширенные возможности Microsoft Excel 2003
Один из лучших учебников по Microsoft Excel 2003.Раскрытие расширенных возможностей Microsoft Excel 2003 проиллюстрировано большим количеством скринов...

Табличный процессор Microsoft Office Excel. Основные понятия. Ввод и редактирование данных в Microsoft Office Excel
Принцип работы и особенности интерфейса табличного процессора Microsoft Office Excel. Описание правил адресации ячеек, освоение приемов их выделения и...

Электронная таблица Excel
Табличный процессор Microsoft Excel 2000 - окна программы, меню, панель инструментов и буфер обмена. Создание, открытие и сохранение рабочей книги, за...