Vba экспорт из excel в excel: Как в Access на VBA выгрузить Recordset в Excel? | Info-Comp.ru
Как в Access на VBA выгрузить Recordset в Excel? | Info-Comp.ru
Всем привет! Материал сегодня будет посвящен рассмотрению возможности Access выгружать Recordset в Excel на VBA. Данный способ достаточно простой и предполагает использование Recordset как формы, так и специально созданного объекта.
Ранее мы с Вами уже рассматривали возможность выгрузки данных из Access в Excel в материале «Выгрузка данных из Access в шаблон Word и Excel», но там мы использовали специально созданный шаблон, что не совсем удобно, если например, нам необходимо выгрузить просто набор данных с заголовками полей.
Также если кого интересует, недавно мы рассматривали возможность выгрузки данных из базы MS SQL Server в формат CSV (текстовый файл с разделителями) с помощью VBA Access в материале «Экспорт данных в CSV файл из Microsoft SQL Server, используя Access 2003».
Сейчас я покажу простой пример реализации возможности выгружать наборы данных с заголовками из базы MS SQL Server средствами VBA Access в Excel.
Весь смысл сводится в использование метода CopyFromRecordset, который позволяет переносить Recordset в Excel в том виде, какой он и есть, т.е. в виде таблицы. Единственное что нам необходимо будет сделать, это выгрузить заголовки, чтобы было понятней, что за данные содержатся в той или иной колонке.
Итак, давайте приступать и для начала рассмотрим исходные данные.
Примечание! В качестве примера источником данных у меня будет выступать MS SQL Server 2012 Express, а в качестве клиента ADP проект Access 2003. Также на компьютере клиенте установлен Microsoft Office 2010.
Исходные данные
Допустим, на сервере у нас есть таблица TestTable.
Код SQL
CREATE TABLE TestTable( ID INT IDENTITY(1,1) NOT NULL, ProductName VARCHAR(50) NOT NULL, Price MONEY NULL, CONSTRAINT PK_TestTable PRIMARY KEY CLUSTERED (ID ASC) ) GO
И она содержит следующие данные.
Код SQL
SELECT * FROM TestTable
Также допустим, что в ADP проекте Access у нас есть форма, источником данных которой выступает наша тестовая таблица TestTable.
Код VBA для выгрузки Recordset формы в Excel
Сначала давайте рассмотрим пример выгрузки объекта Recordset формы в Excel. Для этого добавляем на форму кнопку, для примера я ее назвал RSExportInExcel. В обработку события нажатие кнопки вставляем следующий код, я его прокомментировал:
Код VBA
Option Compare Database Private Sub RSExportInExcel_Click() On Error GoTo Err1 'Переменные Dim XLApp As Object, XLBook As Object, XLSheet As Object, RS As ADODB.Recordset Dim CountColumn As Integer, WidthColumn As Integer 'Создаем объекты: Excel, Книгу, Лист Set XLApp = CreateObject("Excel.Application") Set XLBook = XLApp.Workbooks.add Set XLSheet = XLBook. Worksheets(1) 'Получаем Recordset формы Set RS = Me.Recordset 'Узнаем количество колонок в Recordset CountColumn = RS.Fields.count 'Циклом заполняем заголовки колонок For i = 0 To CountColumn - 1 'Передвигаемся по колонкам в Excel путем смещения XLSheet.Range("A1").offset(0, i).value = RS.Fields(i).NAME 'Немного подкорректируем внешний вид выгрузки 'Ширину колонки определим динамически на основе длины поля, но не более 20 и не менее 6 WidthColumn = Len(RS.Fields(i).NAME) + 2 If WidthColumn > 20 Then WidthColumn = 20 ElseIf WidthColumn < 6 Then WidthColumn = 10 End If 'Задаем для заголовка 'Перенос по словам XLSheet.Rows(1).WrapText = True 'Выравнивание XLSheet.Rows(1).HorizontalAlignment = xlCenter XLSheet.Rows(1).VerticalAlignment = xlCenter 'Цвет фона XLSheet. Rows(1).Interior.ColorIndex = 15 'Ширина XLSheet.Columns(i + 1).ColumnWidth = WidthColumn Next 'Записываем Recordset в Excel XLSheet.Range("A2").CopyFromRecordset RS 'Делаем видимым Excel XLApp.Visible = True Ex1: Exit Sub Err1: MsgBox Err.Description Resume Ex1 End Sub
Сохраняем изменения и пробуем нажать на кнопку. В итоге у нас запустится Excel, а в нем будут необходимые нам данные.
Примечание! Свойства HorizontalAlignment и VerticalAlignment могут не работать, если на компьютере не установлен Microsoft Office 2010, поэтому в случае возникновения ошибок связанных с этими свойствами просто закомментируйте их.
Код VBA для выгрузки объекта Recordset в Excel
Теперь давайте напишем код, который позволяет выгружать объект Recordset, данные которого получены, скажем с помощью запроса к базе данных. Для этого добавьте еще одну кнопку (я ее назвал RSExportInExcel2) и вставьте немного модифицированный код:
Код VBA
Private Sub RSExportInExcel2_Click() On Error GoTo Err1 'Переменные Dim XLApp As Object, XLBook As Object, XLSheet As Object, RS As ADODB. Recordset Dim CountColumn As Integer, WidthColumn As Integer, StrSQLInExcel As String 'Создаем объекты: Excel, Книгу, Лист Set XLApp = CreateObject("Excel.Application") Set XLBook = XLApp.Workbooks.add Set XLSheet = XLBook.Worksheets(1) 'Создаем новый Recordset Set RS = New ADODB.Recordset 'Текст запроса SQL, т.е. сюда можете вставить свой запрос, например, формировать его динамически StrSQLInExcel = "SELECT * FROM TestTable" 'Получаем данные по текущему соединению RS.open StrSQLInExcel, CurrentProject.Connection 'Узнаем количество колонок в Recordset CountColumn = RS.Fields.count 'Циклом заполняем заголовки колонок For i = 0 To CountColumn - 1 'Передвигаемся по колонкам в Excel путем смещения XLSheet.Range("A1").offset(0, i).value = RS.Fields(i).NAME 'Немного подкорректируем внешний вид выгрузки 'Ширину колонки определим динамически на основе длины поля, но не более 20 и не менее 6 WidthColumn = Len(RS. Fields(i).NAME) + 2 If WidthColumn > 20 Then WidthColumn = 20 ElseIf WidthColumn < 6 Then WidthColumn = 10 End If 'Задаем для заголовка 'Перенос по словам XLSheet.Rows(1).WrapText = True 'Выравнивание XLSheet.Rows(1).HorizontalAlignment = xlCenter XLSheet.Rows(1).VerticalAlignment = xlCenter 'Цвет фона XLSheet.Rows(1).Interior.ColorIndex = 15 'Ширина XLSheet.Columns(i + 1).ColumnWidth = WidthColumn Next 'Записываем Recordset в Excel XLSheet.Range("A2").CopyFromRecordset RS 'Делаем видимым Excel XLApp.Visible = True 'Закрываем Recordset RS.close Set RS = Nothing Ex1: Exit Sub Err1: MsgBox Err.Description Resume Ex1 End Sub
Снова сохраняем и пробуем нажать на кнопку, в итоге у нас получится точно такая же выгрузка, как и чуть ранее, только сейчас в качестве источника данных Recordset у нас может выступать любой запрос, а не только данные формы.
На этом у меня все! Надеюсь, материал был Вам полезен, пока!
Нравится2Не нравится
Выгрузка данных из Access в шаблон Word и Excel | Info-Comp.ru
Всем привет, сегодня мы поговорим о том, как можно выгрузить данные из Access в такие приложения как Word и Excel. Но не о стандартном способе, который есть в Access (связь с Office), а о способе, который позволяет выгружать данные в заданный шаблон как в Word, так и в Excel.
Другими словами, это нужно тогда, когда создать отчет в Access по шаблону, который уже существует, например, в Word, невозможно или слишком трудоемко. Как Вы знаете, отчет в Access может выводиться просто коряво или, самый распространенный вариант, это когда много текста, который в отчете Access не так хорошо форматируется как в Word, а данных не так много, но отчет необходимо автоматизировать, например это какие-то договора, заявления и так далее.
Использование слияния из самого Word-а не очень удобно, поэтому сегодня я расскажу, как можно заполнять такие шаблоны напрямую из Access, путем нажатия на одну кнопку.
Кроме выгрузки в шаблон Word, иногда возникает и необходимость выгрузки в шаблон Excel, и этот способ мы тоже сегодня рассмотрим.
Экспорт данных из Access в шаблон Word
Вся разработка делится на две части, это:
- Настройка шаблона Word;
- Настройка выгрузки данных в шаблон.
Суть настройки шаблона заключается в том, чтобы проставить необходимые поля в тех местах шаблона, где нужно выводить те или иные данные. Это делается с помощью полей формы.
Примечание! Я использую Microsoft Word 2003.
Открываем шаблон Word, для начала добавим необходимую панель инструментов, для этого нажимаем «Вид -> Панель инструментов» и ставим галочку «Формы». Теперь у Вас отобразилась панель инструментом «Формы». Все, что осталось сделать — это вставить в местах, в которых необходимо выводить данные, элементы «Текстовое поле», которые доступны на только что добавленной панели инструментов.
После добавления поля, у Вас появится серая область, которая свидетельствует о том, что поле добавлено. Теперь необходимо задать имя этого поля, для того чтобы потом из access вставлять в него значения (стандартное названия не очень удобное). Для этого щелкните правой кнопкой мыши по полю и нажмите «Свойства». В поле закладка напишите желаемое имя этого поля, я в примере назвал его MyTestPole.
Создайте столько полей, сколько Вам нужно.
На этом настройка шаблона закончена, рекомендую сделать этот шаблон только для чтения, а то пользователь возьмет, сформирует документ и сохранит его, и шаблон тем самым потеряется, а если сделать его только для чтения, то у него такой возможности не будет, только сохранять через «Сохранить как».
Переходим к более интересной задачи, это к реализации самой выгрузки из Access в этот шаблон на VBA.
Примечание! Я использую Access в связке с MS SQL 2008, поэтому и данные буду брать от туда.
Код VBA для выгрузки данных в шаблон Word
Допустим, у Вас есть форма, сделайте на ней кнопку (я назвал ее testbutton) и в событие нажатие кнопки вставьте следующий код VBA:
Private Sub testbutton_Click() 'Объявляем переменные Dim FileDialog As FileDialog Dim rsd As ADODB.Recordset Dim strSQL As String Dim WordApOb As Object Dim WordOb As Object Dim path As String Set rsd = New ADODB.Recordset 'запрос к базе данных для получения необходимых данных strSQL = "select * from dbo.table where KOD = " & Me.kod & "" rsd.open strSQL, CurrentProject.Connection 'Выбираем шаблон Set FileDialog = Application.FileDialog(msoFileDialogOpen) 'убираем множественный выбор, он нам не нужен FileDialog.AllowMultiSelect = False 'очистим и установим фильтры FileDialog.Filters.Clear FileDialog. Filters.add "Word", "*.doc" 'установим фильтр по умолчанию FileDialog.FilterIndex = 1 'проверяем, что сделал user, если выбрал шаблон, то начинаем работу If FileDialog.Show = False Then 'Если нет, то выходим Set dlgFile = Nothing Exit Sub End If 'получаем путь к файлу path = Trim(FileDialog.SelectedItems(1)) 'Очистим переменную Set FileDialog = Nothing If path <> "" Then 'Будем отслеживать ошибки On Error GoTo Err_testbutton_Click 'Создаем объект Word Set WordOb = CreateObject("Word.document") 'Задаем нашему документу значение из шаблона Set WordOb = GetObject(path) 'Задаем значение объекту word.Application Set WordApOb = WordOb.Parent 'делаем приложение word видимым WordApOb.Visible = True 'ищем наше поле в шаблоне WordOb. Bookmarks("mytestpole").Select 'задаем ему новое значение из нашего Recordset WordApOb.Selection.TypeText Text:=Nz(rsd.Fields("field").Value, " ") 'и так далее по всем полям 'в конце перейдем на начало нашего документа WordApOb.Selection.Goto wdGoToFirst 'и активируем его WordApOb.Activate 'Очистим переменные Set WordOb = Nothing Set WordApOb = Nothing Exit_testbutton_Click: Exit Sub Err_testbutton_Click: MsgBox Err.Description 'в случае ошибки будем делать следующие 'закроем word без сохранения WordOb.Close (wddonotsavechanges) WordApOb.Quit 'и также очистим переменные Set WordOb = Nothing Set WordApOb = Nothing Resume Exit_testbutton_Click End If End Sub
Код прокомментирован, поэтому сложностей возникнуть не должно. Здесь весь смысл сводится к созданию объекта word.document и word.application. А после мы уже работаем с нашими объектами, т.е. заполняем их.
Экспорт данных из Access в шаблон Excel
В шаблоне Excel уже не нужно создавать поля как в Word, так как здесь мы уже будем ориентироваться по адресам ячеек.
Существует несколько способов, как заполнять Excel шаблон, я опишу два, первый — это тогда, когда Вам просто необходимо проставить несколько полей, т.е. в источнике данных будет всего одна строка с несколькими столбцами. Второй — это когда строк будет уже несколько, причем Вы не знаете, сколько именно (в зависимости от каких то условий). В шаблоне по умолчанию отведено для этого все пару строк, поэтому мы будем нужные нам строки добавлять, для того чтобы наши данные не накладывалась на строки ниже (допустим там примечание, подпись руководителя и т.д.). И совет, я здесь, для примера, использую всего один источник данных, а Вы, если Вам необходимо заполнить шапку, примечание и некое количество строк (т. е. область данных), можете использовать несколько источников (Recordset).
Код VBA для выгрузки данных в шаблон Excel
Сначала добавьте кнопку на форму (я ее назвал testexcel) и вставьте следующий код в событие «Нажатие кнопки».
Private Sub testexcel_Click() 'Объявляем переменные Dim XL As Object Dim XLT As Object Dim newrow As Object Dim rsd As ADODB.Recordset Dim strSQL As String Set rsd = New ADODB.Recordset 'Запрос к базе данных strSQL = "select * from dbo.table where kod = " & Me.kod & "" rsd.open strSQL, CurrentProject.Connection 'Создаем необходимые объекты Set XL = CreateObject("Excel.Application") 'для примера показываю, как можно сразу загружать шаблон без выбора Set XLT = XL.Workbooks.open("C:\testfile.xls") '1 способ - если в источнике данных всего одна строка With XLT. Worksheets("Лист1") .[a1] = rsd.Fields("field1") .[b1] = rsd.Fields("field2") .[c1] = rsd.Fields("field3") .[d1] = rsd.Fields("field4") End With '2 способ - если строк в источнике несколько 'причем мы учтем то, что у нас есть шапка и примечание в Excel 'и мы не знаем, сколько строк у нас вставится 'и поэтому строки будем добавлять в случае необходимости 'зададим, с какой строки будем начинать вставлять данные Rowss = 10 'для нумерации numrow = 1 'запускаем цикл, он будет работать до тех пор, пока не закончатся строки в нашем источнике While Not (rsd.EOF) 'смотрим, если строк больше чем мы задали в шаблоне If Rowss >= 12 Then 'то добавляем строку XLT.Worksheets("Лист1").Rows(Rowss).Insert 'Запомним нашу строку Set newrow = XLT. Worksheets("Лист1").Rows(Rowss) 'и вставим туда копию предыдущей строки 'для того если вдруг у вас там есть объединенные ячейки или какие-то нужные данные 'так как новая строка создастся без всяких объединений и значений XLT.Worksheets("Лист1").Rows(Rowss - 1).Copy newrow 'это просто для примера как можно очистить некий диапазон внутри документа 'XLT.Worksheets("Лист1").Range("A10:F10").ClearContents 'динамически формируем адрес нужной ячейки cell = "a" & Rowss 'и задаем ей значение XLT.Worksheets("Лист1").Range(cell) = numrow cell = "b" & Rowss XLT.Worksheets("Лист1").Range(cell) = rsd.Fields("field5").Value 'переходим на следующую строку Rowss = Rowss + 1 'переходим на следующую строку в источнике данных rsd.MoveNext Else 'а это выполняется до тех пор, пока не закончатся заданные строки в шаблоне 'т. е. если строк в источнике всего 1, то в код, который выше мы даже не попадем cell = "a" & Rowss XLT.Worksheets("Лист1").Range(cell) = numrow cell = "b" & Rowss XLT.Worksheets("Лист1").Range(cell) = rsd.Fields("field5").Value Rowss = Rowss + 1 rsd.MoveNext End If 'для нумерации numrow = numrow + 1 'конец цикла Wend 'это просто пример как можно удалить строку целиком 'XLT.Worksheets("Лист1").Rows(20).Delete 'делаем Excel видимым XL.Visible = True 'Очищаем переменные Set XL = Nothing Set XLT = Nothing Set newrow = Nothing End Sub
Здесь я также все подробно прокомментировал, но если есть вопросы, то задавайте их в комментариях к данной статье.
Для сведения, я здесь при создании объекта и Word.Application и Excel. Application использовал позднее связывание, для того чтобы не добавлять необходимые библиотеки и обеспечить совместимость.
Надеюсь, мои примеры Вам помогут!
Нравится3Не нравится
Как импортировать модуль с макросом на свой компьютер?
Если Вы еще не знаете что представляет из себя редактор Visual Basic и как он выглядит, рекомендую ознакомиться со статьями «Что такое VBE? Как запустить редактор VB, что такое макрорекордер», а также «Копирование, вставка и последующее сохранение кода макроса в модуль редактора VB на своем ПК». Если же Вы уже знакомы с редактором, идем дальше!
Если Вы не знаете как перенести макрос с одного компьютера на другой, либо скачали из интернета файл с расширением .bas, то знайте – это экспортированный из редактора VB файл модуля, в котором содержится программный код макроса. Этот файл можно импортировать в свой редактор, сохранив тем самым макрос на свой компьютер.
Как Вам уже известно, редактор VB представляет из себя многопанельную среду. В окне редактора VBA, как правило, отображается область разработки, панель свойств объектов и панель проектов, которая нам и понадобится для осуществления импорта файла.
Итак, для импорта файла, содержащего код макроса и имеющего расширение .bas последовательно осуществляем несколько шагов:
1. Находим и переносим на жесткий диск своего компьютера файл с расширением .bas;
2. Открываем на своем компьютере редактор Visual Basic (Alt+F11), выбираем существующий проект;
3. Кликаем на нем правой кнопкой мыши и выбираем пункт «Import File»;
4. Находим место расположения файла с расширением .bas, выбираем его и жмем кнопку «Открыть», после чего модуль с программным кодом макроса появляется в вашем редакторе VB.
В случае, если модулей несколько, то необходимо проделать вышеописанные шаги для каждого модуля.
Если Вам необходимо перенести макрос со своего компьютера на какой-то другой, действуем аналогичным образом, только используем уже пункт контекстного меню «Export File…». Для удаления модуля используется команда «Remove». Если вдруг после импорта модуля макрос не запускается, то внимательно читаем статью «Что делать если макрос не работает?».
Другие материалы по теме:
Работа с Excel из Python: Полное руководство с примерами
Узнайте, как читать и импортировать файлы Excel в Python, как записывать данные в эти таблицы и какие библиотеки лучше всего подходят для этого.
Известный вам инструмент для организации, анализа и хранения ваших данных в таблицах — Excel — применяется и в data science. В какой-то момент вам придется иметь дело с этими таблицами, но работать именно с ними вы будете не всегда. Вот почему разработчики Python реализовали способы чтения, записи и управления не только этими файлами, но и многими другими типами файлов.
Из этого учебника узнаете, как можете работать с Excel и Python. Внутри найдете обзор библиотек, которые вы можете использовать для загрузки и записи этих таблиц в файлы с помощью Python. Вы узнаете, как работать с такими библиотеками, как pandas, openpyxl, xlrd, xlutils и pyexcel.
Данные как ваша отправная точка
Когда вы начинаете проект по data science, вам придется работать с данными, которые вы собрали по всему интернету, и с наборами данных, которые вы загрузили из других мест — Kaggle, Quandl и тд
Но чаще всего вы также найдете данные в Google или в репозиториях, которые используются другими пользователями. Эти данные могут быть в файле Excel или сохранены в файл с расширением .csv … Возможности могут иногда казаться бесконечными, но когда у вас есть данные, в первую очередь вы должны убедиться, что они качественные.
В случае с электронной таблицей вы можете не только проверить, могут ли эти данные ответить на вопрос исследования, который вы имеете в виду, но также и можете ли вы доверять данным, которые хранятся в электронной таблице.
Проверяем качество таблицы
- Представляет ли электронная таблица статические данные?
- Смешивает ли она данные, расчеты и отчетность?
- Являются ли данные в вашей электронной таблице полными и последовательными?
- Имеет ли ваша таблица систематизированную структуру рабочего листа?
- Проверяли ли вы действительные формулы в электронной таблице?
Этот список вопросов поможет убедиться, что ваша таблица не грешит против лучших практик, принятых в отрасли. Конечно, этот список не исчерпывающий, но позволит провести базовую проверку таблицы.
Лучшие практики для данных электронных таблиц
Прежде чем приступить к чтению вашей электронной таблицы на Python, вы также должны подумать о том, чтобы настроить свой файл в соответствии с некоторыми основными принципами, такими как:
- Первая строка таблицы обычно зарезервирована для заголовка, а первый ст
Как перевести Excel в XML: 2 рабочих способа
XML – это универсальный формат работы с данными. Его поддерживает множество программ, в том числе из сферы СУБД. Поэтому конвертация информации в XML важна именно с точки зрения взаимодействия и обмена данными между различными приложениями. Excel как раз входит в число программ, которые работают с таблицами, и даже может выполнять манипуляции с базами данных. Разберемся, как конвертировать файлы Эксель в XML.
Процедура конвертации
Конвертация данных в формат XML не такой уж простой процесс, так как в его ходе должна быть создана специальная схема (schema. xml). Впрочем, для преобразования информации в простейший файл данного формата достаточно иметь под рукой обычные инструменты сохранения в Excel, а вот для создания хорошо структурированного элемента придется основательно повозиться с составлением схемы и её подключением к документу.
Способ 1: простое сохранение
В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…». Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.
- Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».
- Запускается окно открытия файлов. Переходим в директорию, где содержится файл, который нам нужен. Он должен быть в одном из форматов Эксель – XLS или XLSX. Выбираем его и жмем на кнопку «Открыть», расположенную в нижней части окна.
- Как видим, файл был открыт, а его данные отобразились на текущем листе. Опять переходим во вкладку «Файл».
- После этого переходим по пункту «Сохранить как…».
- Открывается окно сохранения. Переходим в ту директорию, в которой желаем, чтобы хранился конвертированный файл. Впрочем, можно оставить и директорию по умолчанию, то есть ту, что предложила сама программа. В этом же окне, если возникнет желание, можно изменить наименование файла. Но основное внимание нужно обратить на поле «Тип файла». Раскрываем перечень кликом по данному полю.
Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.
- После этого жмем на кнопку «Сохранить».
Таким образом, преобразование файла из формата Excel в XML будет совершено.
Способ 2: инструменты разработчика
Конвертировать формат Excel в XML можно с помощью инструментов разработчика на вкладке программы. При этом, если пользователь все выполнит правильно, то на выходе он получит, в отличие от предыдущего способа, полноценный XML-файл, который корректно будет восприниматься сторонними приложениями. Но сразу нужно сказать, что не каждому новичку может хватить знаний и умений сразу научится конвертировать данные таким способом.
- По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку «Файл» и кликаем по пункту «Параметры».
- В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты». В правой части окна устанавливаем галочку около значения «Разработчик». После этого жмем на кнопку «OK», размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.
- Далее открываем таблицу Excel в программе любым удобным способом.
- На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки Notepad++. Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.
Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set». В этой же роли для каждой строки выступает тег «record». Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema».
- Опять переходим к программе Excel с уже открытой таблицей. Перемещаемся во вкладку «Разработчик». На ленте в блоке инструментов «XML» кликаем по кнопке «Источник». В открывшемся поле в левой части окна жмем на кнопку «Карты XML…».
- В открывшемся окне кликаем по кнопке «Добавить…».
- Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть».
- После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.
- Кликаем правой кнопкой мыши по полученной таблице. В контекстном меню последовательно переходим по пунктам «XML» и «Экспорт…». После этого сохраняем файл в любой директории.
Как видим, существуют два основных способа конвертации файлов XLS и XLSX в формат XML программой Microsoft Excel. Первый из них предельно простой и заключается в элементарной процедуре сохранения с заданным расширением через функцию «Сохранить как…». Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток. Преобразование выполняется без учета определенных стандартов, и поэтому файл, конвертируемый таким способом, сторонними приложениями может просто не распознаваться. Второй вариант предполагает составление карты XML. В отличие от первого способа, таблица, преобразованная по данной схеме, будет соответствовать всем стандартам качества XML. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.
Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ
Выгрузка данных из Access в шаблон Excel
В шаблоне Excel уже ненужно создавать поля как в Word, так как здесь мы уже будем ориентироваться по адресам ячеек.
Существует несколько способов, как заполнять Excel шаблон, я опишу два, первый это тогда когда Вам просто необходимо проставить несколько полей, т. е. в источнике данных будет всего одна строка с несколькими полями и второй это когда строк будет уже несколько, причем Вы не знаете, сколько именно (в зависимости от каких то условий), но в шаблоне по умолчанию отведено для этого все пару строк, поэтому мы будем нужные нам строки добавлять, для того чтобы наши данные не накладывалась на строки ниже (допустим там примечание, подпись руководителя и т.д.). И совет, я здесь для примера использую всего один источник данных, а вы, если Вам необходимо заполнить шапку, примечание и некое количество строк (т.е. область данных) то для этих задач используйте несколько источников (Recordset).
Также добавьте кнопку на форму (я ее назвал testexcel) и вставляем следующий код в событие «нажатие кнопки»
Private Sub testexcel_Click()
‘Объявляем переменные
Dim XL As Object
Dim XLT As Object
Dim newrow As Object
Dim rsd As ADODB.Recordset
Dim strSQL As String
Set rsd = New ADODB.Recordset
‘Запрос к базе данных
strSQL = «select * from dbo. table where kod = » & Me.kod & «»
rsd.open strSQL, CurrentProject.Connection
‘Создаем необходимые объекты
Set XL = CreateObject(«Excel.Application»)
‘для примера показываю, как можно сразу загружать шаблон без выбора
Set XLT = XL.Workbooks.open(«C:\testfile.xls»)
‘1 способ если источнике данных всего одна строка
With XLT.Worksheets(«Лист1»)
.[a1] = rsd.Fields(«field1»)
.[b1] = rsd.Fields(«field2»)
.[c1] = rsd.Fields(«field3»)
.[d1] = rsd.Fields(«field4»)
End With
‘2 способ если строк в источнике несколько
‘причем мы учтем то, что у нас есть шапка и примечание в Excel
‘и мы не знаем, сколько строк у нас вставится
‘и поэтому строки будем добавлять в случае необходимости
‘зададим, с какой строки будем начинать вставлять данные
Rowss = 10
‘для нумерации
numrow = 1
‘запускаем цикл до тех пор, пока не закончатся строки в нашем источнике
While Not (rsd. EOF)
‘смотрим, если строк больше чем мы задали в шаблоне
If Rowss >= 12 Then
‘то добавляем строку
XLT.Worksheets(«Лист1»).Rows(Rowss).Insert
‘Запомним нашу строку
Set newrow = XLT.Worksheets(«Лист1»).Rows(Rowss)
‘и вставим туда копию предыдущей строки
‘для того если вдруг у вас там есть объединенные ячейки или какие-то нужные данные
‘так как новая строка создастся без всяких объединений и значений
XLT.Worksheets(«Лист1»).Rows(Rowss — 1).Copy newrow
‘это просто для примера как можно очистить некий диапазон внутри документа
‘XLT.Worksheets(«Лист1»).Range(«A10:F10»).ClearContents
‘динамически формируем адрес нужной ячейки
cell = «a» & Rowss
‘и задаем ей значение
XLT.Worksheets(«Лист1»).Range(cell) = numrow
cell = «b» & Rowss
XLT.Worksheets(«Лист1»).Range(cell) = rsd. Fields(«field5»).Value
‘переходим на следующую строку
Rowss = Rowss + 1
‘переходим на следующую строку в источнике данных
rsd.MoveNext
Else
‘а это выполняется до тех пор, пока не закончатся заданные строки в шаблоне
‘т.е. если строк в источнике всего 1 то в код, который выше мы даже не попадем
cell = «a» & Rowss
XLT.Worksheets(«Лист1»).Range(cell) = numrow
cell = «b» & Rowss
XLT.Worksheets(«Лист1»).Range(cell) = rsd.Fields(«field5»).Value
Rowss = Rowss + 1
rsd.MoveNext
End If
‘для нумерации
numrow = numrow + 1
‘конец цикла
Wend
‘это просто пример как можно удалить строку целиком
‘XLT.Worksheets(«Лист1»).Rows(20).Delete
‘делаем Excel видимым
XL.Visible = True
‘Очищаем переменные
Set XL = Nothing
Set XLT = Nothing
Set newrow = Nothing
End Sub
Здесь я также все подробно прокомментировал, но если есть вопросы, то задавайте их в комментариях к данной статье.
Для сведения я здесь при создании объекта и Word.Application и Excel.Application использовал позднее связывание, для того чтобы не добавлять необходимые библиотеки и обеспечить совместимость. Надеюсь, мои примеры Вам помогут!
Экспорт записей MS Access в Excel
Хотя существует пара встроенных методов для экспорта записей таблиц и запросов в Excel, в основном, если кто-то хочет немного больше контролировать процесс (редактировать шрифты, области печати и т. Д.), Вам необходимо создать свою собственную процедуру для выполнения так. Ниже приведен простой пример, который поможет вам начать движение в правильном направлении. В этом примере используются методы позднего связывания и поэтому для работы не требуются никакие библиотеки!
'--------------------------------------------- ------------------------------------------ 'Процедура: Export2XLS Автор: Даниэль Пино, CARDA Consultants Inc.Сайт: http://www.cardaconsultants.com Цель: экспортировать набор записей в Excel. Авторское право: следующее может быть изменено и повторно использовано по вашему желанию при условии, что 'уведомление об авторских правах остается без изменений (включая автора, веб-сайт и ' Авторские права). Его нельзя продавать / перепродавать или размещать на других сайтах (ссылки 'Вернуться на этот сайт разрешено). ' 'Входные переменные: '~~~~~~~~~~~~~~~~ 'sQuery: имя таблицы или оператор SQL, который будет использоваться для экспорта записей ' чтобы преуспеть ' ' Применение: '~~~~~~ 'Export2XLS "qryCustomers" 'Вызов Export2XLS ("qryCustomers") ' ' Лист регистраций изменений: 'Дата выпуска (гггг / мм / дд) Описание '************************************************ ************************************* '1 18 апреля 2012 г., первый выпуск '2 Разъяснения к заголовку 2015-May-01 '------------------------------------------------- -------------------------------------- Функция Export2XLS (ByVal sQuery As String) Dim oExcel как объект Dim oExcelWrkBk как объект Dim oExcelWrSht как объект Dim bExcelOpened As Boolean Dim db как DAO. База данных Dim rs As DAO.Recordset Dim iCols как целое число Константа xlCenter = -4108 'Запустить Excel При ошибке Возобновить Далее Установите oExcel = GetObject (, "Excel.Application") 'Привязать к существующему экземпляру Excel Если Err.Number <> 0 Then 'Не удалось получить экземпляр Excel, поэтому создайте новый Err.Clear При ошибке Перейти к Error_Handler Установите oExcel = CreateObject ("Excel.Application"). bExcelOpened = Ложь Еще 'Excel уже запущен bExcelOpened = Истина Конец, если При ошибке Перейти к Error_Handler oExcel.ScreenUpdating = False oExcel.Visible = False 'Не показывать Excel, пока мы не закончим наши манипуляции Установите oExcelWrkBk = oExcel.Workbooks.Add () 'Начать новую книгу Установите oExcelWrSht = oExcelWrkBk.Sheets (1) 'Откройте наш оператор SQL, таблицу, запрос Установить db = CurrentDb Установите rs = db.OpenRecordset (sQuery, dbOpenSnapshot) С rs Если . RecordCount <> 0 Тогда 'Создайте наш заголовок Для iCols = 0 В rs.Fields.Count - 1 oExcelWrSht.Ячейки (1, iCols + 1) .Value = rs.Fields (iCols) .Name следующий С oExcelWrSht.Range (oExcelWrSht.Cells (1, 1), _ oExcelWrSht.Cells (1, rs.Fields.Count)) .Font.Bold = True .Font.ColorIndex = 2 .Interior.ColorIndex = 1 .HorizontalAlignment = xlCenter Конец с 'Скопируйте данные из нашего запроса в Excel oExcelWrSht.Range ("A2"). CopyFromRecordset rs oExcelWrSht.Диапазон (oExcelWrSht.Cells (1, 1), _ oExcelWrSht.Cells (1, rs.Fields.Count)). Columns.AutoFit 'Измените размер наших столбцов на основе заголовков oExcelWrSht.Range ("A1"). Выберите "Вернуться к началу страницы. Еще MsgBox «Нет записей, возвращенных указанными запросами / оператором SQL. », VbCritical + vbOKOnly, «Нет данных для создания электронной таблицы Excel с» Перейти к Error_Handler_Exit Конец, если Конец с 'oExcelWrkBk.Close True, sFileName 'Сохранить и закрыть созданную книгу 'Закройте Excel, если он изначально не работал 'Если bExcelOpened = False, то 'oExcel.Quit 'Конец, если Error_Handler_Exit: При ошибке Возобновить Далее oExcel.Visible = True 'Сделать Excel видимым для пользователя rs.Close Установите rs = Nothing Установить db = Nothing Установите oExcelWrSht = Nothing Установите oExcelWrkBk = Nothing oExcel.ScreenUpdating = True Установите oExcel = Nothing Функция выхода Error_Handler: MsgBox «Произошла следующая ошибка» & vbCrLf & vbCrLf & _ |
Экспорт Excel в XML в VBA
Введение
В Excel XP появилась новая опция экспорта в XML.Однако я получаю много мусорных бирок (я так разочарован …). Затем, после некоторого времени поисков в Google (нашей хорошей поисковой системе) по теме «Преобразование Excel в XML», я получаю инструменты преобразования, которые просто преобразуют таблицу Rational в XML. Однако мне нужна поддержка вложенных структур (например,
). В результате я решил написать свой собственный, используя VBA … (не спрашивайте меня, почему VBA … может быть, я перенесу его на свою любимую платформу C ++ позже.:)
Использование кода
Исходный код содержит 2 функции GenerateXMLDOM ()
и fGenerateXML ()
. На самом деле они делают то же самое, но с другим подходом.
GenerateXMLDOM
— предоставляет объект Microsoft XMLDOM
, с которым можно играть или преобразовывать в XML в любое время с помощью метода « Сохранить
».
fGenerateXML
— Генерирует длинную строку, готовую к выводу в виде файла (более читаемую, поскольку добавлена новая строка).
Обе функции имеют одинаковые параметры. Первый — это rngData
, это выбранная область таблицы в Excel Sheet для преобразования. Второй ( rootNodeName
) — это имя первого / корневого узла, используемого в XML.
В выбранном диапазоне первая строка должна быть именами полей (или узлов). Стоит отметить, что мы можем использовать имя узла для определения уровня, которому он принадлежит. Имя узла, начинающееся и разделенное разделителем узлов «/», на один уровень глубже предыдущего.например / data / field1 эквивалентно
, / student / name / surname эквивалентно
:
Функция GenerateXMLDOM (rngData как диапазон, rootNodeName как строка)
...
Функция fGenerateXML (rngData как диапазон, rootNodeName как строка) как строка
...
Ограничения и примечания
Порядок полей может повлиять на сгенерированный XML, поля, которые должны быть помещены внутри одного подузла, должны располагаться рядом друг с другом.Например, если / student / id и / student / name расположены рядом друг с другом, будет сгенерировано:
.. ...
Однако, если нет, результат будет:
.. ... somebrabra ...>
..
Причина в том, что он проверяет только последнее поле, а не все, прежде чем решить, где должен быть создан узел.
Наконец, я хотел бы поблагодарить Хаслера Томаса, автора Filebrowser для VBA, который предоставил код для просмотра файлов. Надеюсь, этот код будет вам полезен. Пожалуйста, дайте мне знать, если есть ошибки.
История
- 4 мая 2004 г. — Первый выпуск 0.8 версия
Экспорт в Excel
Экспорт данных в Excel является обычным требованием для многих веб-приложений. Python все упрощает. Но,
тем не менее, это та задача, которую мне нужно искать ссылки всякий раз, когда мне нужно выполнить.
В этом руководстве я дам вам два варианта: (1) экспортировать данные в файл .csv с использованием модуля Python csv ; (2) экспорт
данные в файл .xls с помощью стороннего модуля с именем xlwt .
В обоих случаях предположим, что мы экспортируем данные django.contrib.auth.models.User
.
Экспорт данных в файл CSV
Самый простой способ. Не нужно устанавливать зависимости, и это здорово. Используйте его, если не нуждаетесь в причудливом форматировании.
views.py
импорт CSV
из django.http import HttpResponse
из django.contrib.auth.models импортировать пользователя
def export_users_csv (запрос):
ответ = HttpResponse (content_type = 'text / csv')
ответ ['Content-Disposition'] = 'вложение; filename = "users.csv" '
Writer = csv.writer (ответ)
writer.writerow (['Имя пользователя', 'Имя', 'Фамилия', 'Адрес электронной почты'])
users = User.objects.all (). values_list ('username', 'first_name', 'last_name', 'email')
для пользователя в пользователях:
писатель.экспорт / csv / $ ', views.export_users_csv, name =' export_users_csv '),
]
template.html
Экспорт всех пользователей
В приведенном выше примере я использовал values_list
в QuerySet по двум причинам: во-первых, чтобы запросить только поля мне было нужно
для экспорта, а во-вторых, потому что он вернет данные в виде кортежа вместо экземпляров модели. Метод writerow
ожидает список / кортеж.
Другой способ сделать это:
writer.writerow ([user.username, user.first_name, user.last_name, user.email,])
Экспорт данных в файл XLS
Используйте его, если вам действительно нужно экспортировать в файл .xls. Вы сможете добавить форматирование жирным шрифтом, размер шрифта, определить
размер столбца и т. д.
Прежде всего, установите модуль xlwt . Самый простой способ — использовать pip .
pip install xlwt
просмотров.py
импорт XLWT
из django.http import HttpResponse
из django.contrib.auth.models импортировать пользователя
def export_users_xls (запрос):
ответ = HttpResponse (content_type = 'application / ms-excel')
ответ ['Content-Disposition'] = 'вложение; filename = "users.xls" '
wb = xlwt.Workbook (кодировка = 'utf-8')
ws = wb.add_sheet ('Пользователи')
# Заголовок листа, первая строка
row_num = 0
font_style = xlwt.XFStyle ()
font_style.font.bold = Верно
columns = ['Имя пользователя', 'Имя', 'Фамилия', 'Адрес электронной почты',]
для col_num в диапазоне (len (столбцы)):
ws.написать (row_num, col_num, columns [col_num], font_style)
# Тело листа, оставшиеся строки
font_style = xlwt.XFStyle ()
rows = User.objects.all (). values_list ('username', 'first_name', 'last_name', 'email')
для ряда в ряды:
row_num + = 1
для col_num в диапазоне (len (строка)):
ws.write (row_num, col_num, row [col_num], font_style)
wb.save (ответ)
возврат ответа
urls.py
импорт просмотров
urlpatterns = [
..экспорт / xls / $ ', views.export_users_xls, name =' export_users_xls '),
]
template.html
Экспорт всех пользователей
Узнайте больше о модуле xlwt , прочитав его официальную документацию.
Конвертировать PDF в Excel. Электронные таблицы PDF в XLS онлайн
- Объединить PDF
- Разделить PDF
- Сжать PDF
- Конвертировать PDF
Конвертировать в PDF
- JPG в PDF
- СЛОВО в PDF
- POWERPOINT в PDF
- EXCEL в PDF
- HTML в PDF
Конвертировать из PDF
- PDF в JPG
- PDF в WORD
- PDF для POWERPOINT
- PDF в EXCEL
- PDF в PDF / A
- Все инструменты PDF
Упорядочить PDF
- Объединить PDF
- Разделить PDF
- Удалить страницы
- Извлечь страницы
- Упорядочить PDF
Оптимизировать PDF
- Сжать PDF
- Ремонт PDF
Конвертировать в PDF
- JPG в PDF
- СЛОВО в PDF
- POWERPOINT в PDF
- EXCEL в PDF
- HTML в PDF
Конвертировать из PDF
- PDF в JPG
- PDF в WORD
- PDF для POWERPOINT
- PDF в EXCEL
- PDF в PDF / A
Редактировать PDF
- Повернуть PDF
- Добавить номера страниц
- Добавить водяной знак
- Редактировать PDF
Безопасность PDF
- Разблокировать PDF
- Защитить PDF
- Подпись PDF
- Авторизоваться
зарегистрироваться-
- Дом
- Товар
- Настольный
- мобильный
- Характеристики
- Остальное по API
- Плагин WordPress
- Решения
- Бизнес
- Образование
- Разработчики
Как создать и использовать надстройку Excel (пошаговое руководство)
Надстройка Excel может быть действительно полезна, когда вам нужно часто запускать макрос в разных книгах.
Например, предположим, что вы хотите выделить все ячейки, в которых есть ошибка, вы можете легко создать надстройку Excel, которая будет выделять ошибки одним нажатием кнопки.
Примерно как показано ниже (макрос был добавлен на панель быстрого доступа, чтобы запускать его одним щелчком мыши):
Точно так же вы можете создать настраиваемую функцию Excel и использовать ее во всех книгах Excel, вместо того, чтобы копировать вставляя код снова и снова.
Если вы хотите изучить VBA простым способом, ознакомьтесь с моим курсом Online Excel VBA Training .
Создание надстройки Excel
Из этого руководства вы узнаете, как создать надстройку Excel. Чтобы создать надстройку и сделать ее доступной в QAT, нужно выполнить три шага.
- Запишите / запишите код в модуль.
- Сохранить как надстройку Excel.
- Добавьте макрос на панель быстрого доступа.
Запись / запись кода в модуле
В этом примере мы будем использовать простой код для выделения всех ячеек со значениями ошибок:
Sub HighlightErrors () Выбор.SpecialCells (xlCellTypeFormulas, xlErrors) .Select Selection.Interior.Color = vbRed Конечный переводник
Если вы пишете код (или копируете его откуда-то), выполните следующие действия:
- Откройте книгу Excel.
- Нажмите Alt + F11, чтобы открыть окно редактора VB.
- В редакторе VB вы увидите объекты книги, перечисленные в проводнике проекта. Если вы этого не видите, выберите «Просмотр» -> «Обозреватель проекта».
- Щелкните правой кнопкой мыши любой объект в книге.Перейдите к опции «Вставить» и нажмите «Модуль». Это вставит объект модуля.
- Дважды щелкните модуль и введите указанный выше код (скопируйте и вставьте его).
- Нажмите Alt + F11, чтобы вернуться к таблице Excel.
Примечание: Если вы записываете макрос, Excel автоматически обрабатывает из , вставляя модуль и помещая в него код.
А теперь давайте создадим надстройку из этого кода.
Сохраните и установите надстройку
Выполните следующие шаги, когда вы находитесь в книге, в которую вы вставили код.
- Щелкните вкладку Файл.
- Нажмите «Сохранить как».
- В диалоговом окне «Сохранить как» измените тип «Сохранить как» на .xlam. Имя, которое вы назначаете файлу, будет именем вашей надстройки. В этом примере файл сохраняется под именем Highlight Errors.
- Вы заметите, что путь к файлу, в котором он сохраняется, автоматически изменяется. Вы можете использовать значение по умолчанию или изменить его, если хотите.
- Откройте книгу Excel и перейдите в раздел «Разработчик» -> «Надстройки» -> «Надстройки Excel».
- В диалоговом окне «Надстройки» найдите сохраненный файл и нажмите «ОК».
Экспорт / импорт в Excel, экспорт в iCal Gantt Docs
Библиотека dhtmlxGantt позволяет экспортировать данные из диаграммы Ганта в форматы Excel и iCal. Вы также можете импортировать данные в диаграмму Ганта из файла Excel.
Пределы по запросу
Существует общая конечная точка API https://export.dhtmlx.com/gantt, которая обслуживает все методы экспорта ( exportToPDF , exportToPNG , exportToMSProject и т. Д.) и для import FromExcel
метод. Максимальный размер запроса — 10 МБ .
Существует также отдельная конечная точка API https://export.dhtmlx.com/gantt/project, специфичная для служб экспорта / импорта MSProject.
( exportToMSProject / importFromMSProject только). Максимальный размер запроса: 40 МБ .
Экспорт в Excel
Чтобы экспортировать данные из диаграммы Ганта в документ Excel, выполните следующие действия:
- Включить «http: // export.dhtmlx.com/gantt/api.js « на странице для включения службы экспорта в Интернете:
- Вызов метода exportToExcel для экспорта данных из диаграммы Ганта:
Связанный образец: Экспорт данных: MS Project, PrimaveraP6, Excel и iCal
Связанный образец: Экспорт данных: Интернет-магазин
Параметры метода экспорта
Метод exportToExcel () принимает в качестве параметра объект с несколькими свойствами (все свойства необязательны):
- name — ( строка ) задает имя выходного файла с расширением ‘.xlsx ‘
- столбцов — ( массив ) позволяет настраивать столбцы выходного листа Excel. Свойства объектов столбца:
- ‘id’ — (строка , номер ) свойство события, которое будет отображаться в столбец
- ‘заголовок’ — ( строка ) заголовок столбца
- ‘width’ — ( число ) ширина столбца в пикселях
- ‘тип’ — ( строка ) тип столбца
- сервер — ( строка ) устанавливает конечную точку API для запроса.Может использоваться с локальной установкой службы экспорта. Значение по умолчанию — https://export.dhtmlx.com/gantt
- visual — ( boolean ) добавляет временную диаграмму в экспортированный документ Excel. false по умолчанию
- cellColors — ( boolean ) если установлено значение true , ячейки экспортируемого документа будут иметь цвета, определенные шаблоном timeline_cell_class, цвет и цвет фона
недвижимость экспортирована - data — ( объект ) устанавливает пользовательский источник данных, который будет представлен в выходной диаграмме Ганта
- date_format — ( строка ) устанавливает формат, в котором дата будет отображаться в экспортируемом документе Excel.Вы можете увидеть полный список кодов доступных форматов здесь.
.
Вызов метода экспорта с необязательными свойствами
gantt.exportToExcel ({ имя: "document.xlsx", столбцы: [ {id: "текст", заголовок: "Название", ширина: 150}, {id: "start_date", заголовок: "Дата начала", ширина: 250, тип: "date"} ], сервер: "https://myapp.com/myexport/gantt", визуальный: правда, cellColors: правда, данные:{}, date_format: "дддд д, мммм гггг" });
Настройка пользовательского источника данных для экспорта
Чтобы экспортировать диаграмму Ганта с пользовательским набором данных (т.е. не с данными, представленными в исходной диаграмме Ганта), используйте свойство data в параметре
метод exportToExcel:
gantt.exportToExcel ({ имя: "document.xlsx", данные:[ {id: 1, text: "Project # 1", start_date: "01-04-2020", продолжительность: 18}, {id: 2, текст: "Task # 1", start_date: "02-04-2020", продолжительность: 8, parent: 1}, {id: 3, text: "Task # 2", start_date: "11-04-2020", продолжительность: 8, parent: 1} ] });
Обратите внимание, что вы не можете указать какой-либо URL-адрес в качестве значения параметра data , только объект данных.
Добавление цветов задач для экспорта
Вы можете добавить цвета задач в экспортированный файл Excel диаграммы Ганта, установив для свойства visual значение «base-colors» :
gantt.exportToExcel ({ visual: "base-colors", cellColors: true })
Связанный образец: Экспорт цветов задач
Импорт из Excel
Поскольку невозможно автоматически сопоставить произвольные столбцы документа Excel с моделью данных Ганта, служба экспорта преобразует документ в массив строк, который возвращается в формате JSON.Конвертация полученного документа в данные Ганта является обязанностью конечных разработчиков.
Для конвертации файла Excel необходимо отправить в службу экспорта следующий запрос:
- URL запроса — https://export.dhtmlx.com/gantt
- Метод запроса — POST
- Content-Type — multipart / form-data
Параметры запроса:
- файл — файл Excel
- тип — «excel-parse»
- data — ( опционально ) строка JSON с настройками
Например:
В качестве альтернативы вы можете использовать клиентский API:
gantt.importFromExcel ({ сервер: "https://export.dhtmlx.com/gantt", файл данных, callback: function (project) { console.log (проект) } });
Связанный образец: Импорт файла Excel
Где файл — это экземпляр файла, который должен содержать файл Excel (xlsx).
gantt.importFromExcel требует поддержки API файлов HTML5.
Ответ
Ответ будет содержать JSON с массивом объектов:
[ {"Name": "Task Name", "Start": "2018-08-11 10:00", "Duration": 8}, ... ]
где:
- Значения первой строки используются как имена свойств импортируемых объектов.
- Каждая строка сериализуется как отдельный объект.
- Значения даты сериализуются в формате «% Y-% m-% d% H:% i».
Импорт настроек
- Служба импорта ожидает, что первая строка импортированного листа будет строкой заголовка, содержащей имена столбцов.
- По умолчанию служба возвращает первый лист документа. Чтобы вернуть другой лист, используйте параметр листа (с нуля)
gantt.importFromExcel ({ сервер: "https://export.dhtmlx.com/gantt", файл данных, sheet: 2, // печать третьего листа обратный вызов: функция (строки) {} });
Экспорт в iCal
Чтобы экспортировать данные из диаграммы Ганта в строку iCal, выполните следующие действия:
- Включить «http: // export.dhtmlx.com/gantt/api.js « на странице для включения службы экспорта в Интернете:
- Вызов метода exportToICal для экспорта данных из диаграммы Ганта:
Связанный образец: Экспорт данных: MS Project, PrimaveraP6, Excel и iCal
Связанный образец: Экспорт данных: Интернет-магазин
Параметры метода экспорта
Метод exportToICal () принимает в качестве параметра объект со следующим свойством (необязательно):
- сервер — ( строка ) устанавливает конечную точку API для запроса.Может использоваться с локальной установкой службы экспорта. Значение по умолчанию — https://export.dhtmlx.com/gantt .