Экспорт в Microsoft Excel (много)

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Дед Пахом »

Admin писал(а): 07 Ноябрь 2017, 12:48Кто мешает во "враппере" все это сделать?
Так вот я и интересуюсь - сделано ли это на враппере, который продают, причём не задёшево. Хотя у меня и Экселя-то нет...
С уважением, ДП
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Admin »

Нашел проект для сборки под Windows
Собрал. Работает.
Примеров куча тут
Пример подключения к Clarion
LibXlsxWriter.zip
LibXlsxWriter пример
(249.39 КБ) 137 скачиваний

Код: Выделить всё

  PROGRAM
  INCLUDE('Cstr.inc')
  MAP
    MODULE('LibXlsxWriter.dll')
      new_workbook(*CSTRING FileName),LONG,RAW,C
      workbook_close(LONG wordbook),PROC,LONG,RAW,C
      workbook_add_worksheet(LONG wordbook, *CSTRING sheetname),LONG,RAW,C
      worksheet_write_string(LONG worksheet, LONG row_num, LONG col_numm, *CSTRING text, LONG format),PROC,LONG,RAW,C
    END
  END

lwordbook     LONG
lworksheet    LONG
lformat       LONG
lrow          LONG
lcol          LONG
cFileName     CSTRING(255)  
cSheetName    CSTRING(255)
cText         CSTRING(255)

cs            Cstr

  CODE
  cFileName = 'result.xlsx'
  lwordbook = new_workbook(cFileName)
  cSheetName = 'Example'
  lworksheet = workbook_add_worksheet(lwordbook, cSheetName)

  cText = 'Write test string from Clarion'
  worksheet_write_string(lworksheet, 0, 0, cText, ADDRESS(lformat))  

  cs.set('Пример строки из Clarion')
  cs.ToUTF8()
  cText = cs.cstr()
  worksheet_write_string(lworksheet, 1, 0, cText, ADDRESS(lformat))  

  workbook_close(lwordbook)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Admin »

2 миллиона ячеек заполняется на моем компе за 14 секунд. Без форматирования конечно же.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Yufil »

А на Python, интересно, сколько займёт. Из Clarion вполне вызываемо, и выглядит попроще. Завтра развлекусь...
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 425
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 87 раз
Поблагодарили: 5 раз

Экспорт в Microsoft Excel (много)

Сообщение ingasoftplus »

вот ответ:
Currently there is no demo. I will create one and put it on my website. I should be able to post it by Thursday.

The documentation is here: https://libxlsxwriter.github.io/

The wrapper is for the open source LibXlsxWriter library. I have written a bit of C code to better interface with Clarion.
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Экспорт в Microsoft Excel (много)

Сообщение vic7tar »

Admin, твоя сборка - 334 Kb, 314 функций.
Cобрал библиотеку с помощью MinGW. Объем libxlsxwriter.dll получился 1 415 Kb, 356 функций.
libxlsxwriter(dll).zip
(447.41 КБ) 128 скачиваний
Почему такая дискриминация?
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение RaFaeL »

Ребят, вы что?
https://forum.clarionlife.net:443/viewt ... f=8&t=3830
Полгода назад все это я уже делал

P.S. Для уменьшения размера после MinGW надо использовать strip.exe
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Дед Пахом »

RaFaeL писал(а): 07 Ноябрь 2017, 21:17Полгода назад все это я уже делал
Так и я о том! За что он деньги хочет? Есть ли шаблоны для типичных задач?
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Экспорт в Microsoft Excel (много)

Сообщение Игорь Столяров »

Человек же написал: I have written a bit of C code ....
Судя по цене - тяжело далось ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение RaFaeL »

Дед Пахом писал(а): 07 Ноябрь 2017, 21:20Есть ли шаблоны для типичных задач?
Ну это делается элементарно - берется (любой имеющийся по вкусу) шаблон для выгрузки по OLE, вызовы OLE заменяются вызовами библиотекм. Себе я примерно так и встроил, там правда три варианта на выбор - OLE (ABExcel), BIFF8 (Taboga), XLSX (libxlsxwriter). Кода при наличии обертки добавлется очень мало, буквально строчек 20-30
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Дед Пахом »

RaFaeL писал(а): 07 Ноябрь 2017, 21:28Ну это делается элементарно
Это всё несерьёзно. Я хочу иметь кнопку на окне, по которой выгружу броуз в Эксель, со всем форматированием, шириной колонок, цветом и т.д. Или отчёт - с шапкой, деталями...
С уважением, ДП
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Экспорт в Microsoft Excel (много)

Сообщение Ал »

Yufil писал(а): 07 Ноябрь 2017, 19:35 А на Python, интересно, сколько займёт. Из Clarion вполне вызываемо, и выглядит попроще. Завтра развлекусь...
смотрел в праздники на питоне библиотеку xlsxwriter, примеры копипастом с сайта..., запускаются - все "скучно", штатно, с первой попытки...
впрочем, так же как например, с openpyxl, которую "покрутил" до этого...
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Admin »

Все всё уже делали, у всех запускается, всем скучно.
Что же мы тогда тут эту тему, трем и трем!? :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Экспорт в Microsoft Excel (много)

Сообщение Admin »

vic7tar писал(а): 07 Ноябрь 2017, 20:46Почему такая дискриминация?
В проекте что я компилировал описано какие функции экспортировать (XlsxWriter.def)

Код: Выделить всё

EXPORTS
    chart_add_series
    chart_axis_major_gridlines_set_line
    chart_axis_major_gridlines_set_visible
    chart_axis_minor_gridlines_set_line
    chart_axis_minor_gridlines_set_visible
    chart_axis_off
    chart_axis_set_crossing
    chart_axis_set_crossing_max
    chart_axis_set_display_units
    chart_axis_set_display_units_visible
    chart_axis_set_fill
    chart_axis_set_interval_tick
    chart_axis_set_interval_unit
    chart_axis_set_label_position
    chart_axis_set_line
    chart_axis_set_log_base
    chart_axis_set_major_tick_mark
    chart_axis_set_major_unit
    chart_axis_set_max
    chart_axis_set_min
    chart_axis_set_minor_tick_mark
    chart_axis_set_minor_unit
    chart_axis_set_name
    chart_axis_set_name_font
    chart_axis_set_name_range
    chart_axis_set_num_font
    chart_axis_set_num_format
    chart_axis_set_pattern
    chart_axis_set_position
    chart_axis_set_reverse
    chart_chartarea_set_fill
    chart_chartarea_set_line
    chart_chartarea_set_pattern
    chart_legend_delete_series
    chart_legend_set_font
    chart_legend_set_position
    chart_plotarea_set_fill
    chart_plotarea_set_line
    chart_plotarea_set_pattern
    chart_series_set_categories
    chart_series_set_error_bars
    chart_series_set_error_bars_direction
    chart_series_set_error_bars_endcap
    chart_series_set_error_bars_line
    chart_series_set_fill
    chart_series_set_invert_if_negative
    chart_series_set_labels
    chart_series_set_labels_font
    chart_series_set_labels_leader_line
    chart_series_set_labels_legend
    chart_series_set_labels_num_format
    chart_series_set_labels_options
    chart_series_set_labels_percentage
    chart_series_set_labels_position
    chart_series_set_labels_separator
    chart_series_set_line
    chart_series_set_marker_fill
    chart_series_set_marker_line
    chart_series_set_marker_pattern
    chart_series_set_marker_size
    chart_series_set_marker_type
    chart_series_set_name
    chart_series_set_name_range
    chart_series_set_pattern
    chart_series_set_points
    chart_series_set_smooth
    chart_series_set_trendline
    chart_series_set_trendline_equation
    chart_series_set_trendline_forecast
    chart_series_set_trendline_intercept
    chart_series_set_trendline_line
    chart_series_set_trendline_name
    chart_series_set_trendline_r_squared
    chart_series_set_values
    chart_set_drop_lines
    chart_set_high_low_lines
    chart_set_hole_size
    chart_set_rotation
    chart_set_series_gap
    chart_set_series_overlap
    chart_set_style
    chart_set_table
    chart_set_table_font
    chart_set_table_grid
    chart_set_up_down_bars
    chart_set_up_down_bars_format
    chart_show_blanks_as
    chart_show_hidden_data
    chart_title_off
    chart_title_set_name
    chart_title_set_name_font
    chart_title_set_name_range
    format_set_align
    format_set_bg_color
    format_set_bold
    format_set_border
    format_set_border_color
    format_set_bottom
    format_set_bottom_color
    format_set_diag_border
    format_set_diag_color
    format_set_diag_type
    format_set_fg_color
    format_set_font_charset
    format_set_font_color
    format_set_font_condense
    format_set_font_extend
    format_set_font_family
    format_set_font_name
    format_set_font_outline
    format_set_font_scheme
    format_set_font_script
    format_set_font_shadow
    format_set_font_size
    format_set_font_strikeout
    format_set_hidden
    format_set_indent
    format_set_italic
    format_set_left
    format_set_left_color
    format_set_num_format
    format_set_num_format_index
    format_set_pattern
    format_set_reading_order
    format_set_right
    format_set_right_color
    format_set_rotation
    format_set_shrink
    format_set_text_justlast
    format_set_text_wrap
    format_set_theme
    format_set_top
    format_set_top_color
    format_set_underline
    format_set_unlocked
    format_set_valign
    lxw_add_document_relationship
    lxw_add_drawing_object
    lxw_add_ms_package_relationship
    lxw_add_package_relationship
    lxw_add_worksheet_relationship
    lxw_app_add_heading_pair
    lxw_app_add_part_name
    lxw_app_assemble_xml_file
    lxw_app_free
    lxw_app_new
    lxw_basename
    lxw_chart_add_data_cache
    lxw_chart_assemble_xml_file
    lxw_chart_free
    lxw_chart_new
    lxw_col_to_name
    lxw_content_types_assemble_xml_file
    lxw_content_types_free
    lxw_content_types_new
    lxw_core_assemble_xml_file
    lxw_core_free
    lxw_core_new
    lxw_create_package
    lxw_ct_add_calc_chain
    lxw_ct_add_chart_name
    lxw_ct_add_custom_properties
    lxw_ct_add_default
    lxw_ct_add_drawing_name
    lxw_ct_add_override
    lxw_ct_add_shared_strings
    lxw_ct_add_worksheet_name
    lxw_custom_assemble_xml_file
    lxw_custom_free
    lxw_custom_new
    lxw_datetime_to_excel_date
    lxw_drawing_assemble_xml_file
    lxw_drawing_free
    lxw_drawing_new
    lxw_escape_control_characters
    lxw_escape_data
    lxw_format_check_color
    lxw_format_free
    lxw_format_get_border_key
    lxw_format_get_fill_key
    lxw_format_get_font_key
    lxw_format_get_xf_index
    lxw_format_new
    lxw_free_drawing_object
    lxw_free_relationships
    lxw_get_sst_index
    lxw_hash_free
    lxw_hash_key_exists
    lxw_hash_new
    lxw_insert_hash_element
    lxw_name_to_col
    lxw_name_to_col_2
    lxw_name_to_row
    lxw_name_to_row_2
    lxw_new_attribute_dbl
    lxw_new_attribute_int
    lxw_new_attribute_str
    lxw_packager_free
    lxw_packager_new
    lxw_quote_sheetname
    lxw_relationships_assemble_xml_file
    lxw_relationships_new
    lxw_rowcol_to_cell
    lxw_rowcol_to_cell_abs
    lxw_rowcol_to_formula_abs
    lxw_rowcol_to_range
    lxw_rowcol_to_range_abs
    lxw_sst_assemble_xml_file
    lxw_sst_free
    lxw_sst_new
    lxw_str_tolower
    lxw_strdup
    lxw_strerror
    lxw_styles_assemble_xml_file
    lxw_styles_free
    lxw_styles_new
    lxw_theme_assemble_xml_file
    lxw_theme_free
    lxw_theme_new
    lxw_tmpfile
    lxw_utf8_strlen
    lxw_workbook_assemble_xml_file
    lxw_workbook_free
    lxw_workbook_set_default_xf_indices
    lxw_worksheet_assemble_xml_file
    lxw_worksheet_find_cell
    lxw_worksheet_find_row
    lxw_worksheet_free
    lxw_worksheet_new
    lxw_worksheet_prepare_chart
    lxw_worksheet_prepare_image
    lxw_worksheet_write_single_row
    lxw_xml_data_element
    lxw_xml_declaration
    lxw_xml_empty_tag
    lxw_xml_empty_tag_unencoded
    lxw_xml_end_tag
    lxw_xml_start_tag
    lxw_xml_start_tag_unencoded
    new_workbook
    new_workbook_opt
    workbook_add_chart
    workbook_add_format
    workbook_add_worksheet
    workbook_close
    workbook_define_name
    workbook_get_worksheet_by_name
    workbook_new
    workbook_new_opt
    workbook_set_custom_property_boolean
    workbook_set_custom_property_datetime
    workbook_set_custom_property_integer
    workbook_set_custom_property_number
    workbook_set_custom_property_string
    workbook_set_properties
    workbook_validate_worksheet_name
    worksheet_activate
    worksheet_autofilter
    worksheet_center_horizontally
    worksheet_center_vertically
    worksheet_fit_to_pages
    worksheet_freeze_panes
    worksheet_freeze_panes_opt
    worksheet_gridlines
    worksheet_hide
    worksheet_hide_zero
    worksheet_insert_chart
    worksheet_insert_chart_opt
    worksheet_insert_image
    worksheet_insert_image_opt
    worksheet_merge_range
    worksheet_print_across
    worksheet_print_area
    worksheet_print_row_col_headers
    worksheet_protect
    worksheet_repeat_columns
    worksheet_repeat_rows
    worksheet_right_to_left
    worksheet_select
    worksheet_set_column
    worksheet_set_column_opt
    worksheet_set_default_row
    worksheet_set_first_sheet
    worksheet_set_footer
    worksheet_set_footer_opt
    worksheet_set_h_pagebreaks
    worksheet_set_header
    worksheet_set_header_opt
    worksheet_set_landscape
    worksheet_set_margins
    worksheet_set_page_view
    worksheet_set_paper
    worksheet_set_portrait
    worksheet_set_print_scale
    worksheet_set_row
    worksheet_set_row_opt
    worksheet_set_selection
    worksheet_set_start_page
    worksheet_set_tab_color
    worksheet_set_v_pagebreaks
    worksheet_set_zoom
    worksheet_split_panes
    worksheet_split_panes_opt
    worksheet_write_array_formula
    worksheet_write_array_formula_num
    worksheet_write_blank
    worksheet_write_boolean
    worksheet_write_datetime
    worksheet_write_formula
    worksheet_write_formula_num
    worksheet_write_number
    worksheet_write_string
    worksheet_write_url
    worksheet_write_url_opt
А за размером к компилятору. Я использовал VS++ 2017
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Экспорт в Microsoft Excel (много)

Сообщение Ал »

Admin писал(а): 08 Ноябрь 2017, 4:09 Все всё уже делали, у всех запускается, всем скучно.
Что же мы тогда тут эту тему, трем и трем!? :)
:mrgreen:
про питон: ..., ставим, запускаем и о ужас - там просто все работает, как в тестовых примерах...
про "трём" :nr: : у всех всё видно немного не так - клиенты/требования/запросы/условия использования софта/железо/... прочее..., лично я - где возможно - исп. dexcel(+доп. настройки стилей и проч. если надо, можно через щле с красивостями - для гендира если софтина)), а если отчет заведомо "большой и длинный" - то сразу лью в csv...
Ответить