Разное

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, просто воспользовавшись меню «Сохранить как…». Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.

  1. Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».
  2. Запускается окно открытия файлов. Переходим в директорию, где содержится файл, который нам нужен. Он должен быть в одном из форматов Эксель – XLS или XLSX. Выбираем его и жмем на кнопку «Открыть», расположенную в нижней части окна.
  3. Как видим, файл был открыт, а его данные отобразились на текущем листе. Опять переходим во вкладку «Файл».
  4. После этого переходим по пункту «Сохранить как…».
  5. Открывается окно сохранения. Переходим в ту директорию, в которой желаем, чтобы хранился конвертированный файл. Впрочем, можно оставить и директорию по умолчанию, то есть ту, что предложила сама программа. В этом же окне, если возникнет желание, можно изменить наименование файла. Но основное внимание нужно обратить на поле «Тип файла». Раскрываем перечень кликом по данному полю.

    Среди вариантов сохранения ищем наименование «Таблица XML 2003» или «XML-данные». Выбираем один из этих пунктов.

  6. После этого жмем на кнопку «Сохранить».

Таким образом, преобразование файла из формата Excel в XML будет совершено.

Способ 2: инструменты разработчика

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

  1. По умолчанию вкладка инструментов разработчика отключена. Поэтому, прежде всего, нужно её активировать. Переходим во вкладку «Файл» и кликаем по пункту «Параметры».
  2. В открывшемся окне параметров перемещаемся в подраздел «Настройка ленты». В правой части окна устанавливаем галочку около значения «Разработчик». После этого жмем на кнопку «OK», размещенную в нижней части окна. Вкладка инструментов разработчика теперь включена.
  3. Далее открываем таблицу Excel в программе любым удобным способом.
  4. На её основе нам предстоит создать схему, которая формируется в любом текстовом редакторе. Для этих целей можно использовать и обычный Блокнот Windows, но лучше применять специализированное приложение для программирования и работы с языками разметки Notepad++. Запускаем эту программу. В ней создаем схему. На нашем примере она будет выглядеть, как показано внизу на скриншоте окна Notepad++.

    Как видим, открывающим и закрывающим тегом для документа в целом служит «data-set». В этой же роли для каждой строки выступает тег «record». Для схемы вполне будет достаточно, если мы возьмем всего две строки таблицы, а не будем переводить её всю вручную в XML. Название открывающего и закрывающего тега столбца может быть произвольным, но в данном случае для удобства мы предпочли просто перевести русскоязычные наименования колонок на английский язык. После того, как данные внесены, просто сохраняем их через функционал текстового редактора в любом месте на жестком диске в формате XML под названием «schema».

  5. Опять переходим к программе Excel с уже открытой таблицей. Перемещаемся во вкладку «Разработчик». На ленте в блоке инструментов «XML» кликаем по кнопке «Источник». В открывшемся поле в левой части окна жмем на кнопку «Карты XML…».
  6. В открывшемся окне кликаем по кнопке «Добавить…».
  7. Запускается окно выбора источника. Переходим в директорию расположения схемы составленной ранее, выбираем её и кликаем по кнопке «Открыть».
  8. После того, как элементы схемы появились в окне, перетаскиваем их с помощью курсора в соответствующие ячейки наименования столбцов таблицы.
  9. Кликаем правой кнопкой мыши по полученной таблице. В контекстном меню последовательно переходим по пунктам «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 расположены рядом друг с другом, будет сгенерировано:

 .....  

Однако, если нет, результат будет:

 ..   ... 
..  

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

Наконец, я хотел бы поблагодарить Хаслера Томаса, автора 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 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *