Страница 14 из 15

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

Добавлено: 07 Ноябрь 2017, 12:50
Дед Пахом
Admin писал(а): 07 Ноябрь 2017, 12:48Кто мешает во "враппере" все это сделать?
Так вот я и интересуюсь - сделано ли это на враппере, который продают, причём не задёшево. Хотя у меня и Экселя-то нет...

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

Добавлено: 07 Ноябрь 2017, 18:57
Admin
Нашел проект для сборки под Windows
Собрал. Работает.
Примеров куча тут
Пример подключения к Clarion
LibXlsxWriter.zip
LibXlsxWriter пример
(249.39 КБ) 183 скачивания

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

  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)

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

Добавлено: 07 Ноябрь 2017, 19:02
Admin
2 миллиона ячеек заполняется на моем компе за 14 секунд. Без форматирования конечно же.

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

Добавлено: 07 Ноябрь 2017, 19:35
Yufil
А на Python, интересно, сколько займёт. Из Clarion вполне вызываемо, и выглядит попроще. Завтра развлекусь...

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

Добавлено: 07 Ноябрь 2017, 20:39
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.

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

Добавлено: 07 Ноябрь 2017, 20:46
vic7tar
Admin, твоя сборка - 334 Kb, 314 функций.
Cобрал библиотеку с помощью MinGW. Объем libxlsxwriter.dll получился 1 415 Kb, 356 функций.
libxlsxwriter(dll).zip
(447.41 КБ) 207 скачиваний
Почему такая дискриминация?

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

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

P.S. Для уменьшения размера после MinGW надо использовать strip.exe

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

Добавлено: 07 Ноябрь 2017, 21:20
Дед Пахом
RaFaeL писал(а): 07 Ноябрь 2017, 21:17Полгода назад все это я уже делал
Так и я о том! За что он деньги хочет? Есть ли шаблоны для типичных задач?

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

Добавлено: 07 Ноябрь 2017, 21:23
Игорь Столяров
Человек же написал: I have written a bit of C code ....
Судя по цене - тяжело далось ... ;)

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

Добавлено: 07 Ноябрь 2017, 21:28
RaFaeL
Дед Пахом писал(а): 07 Ноябрь 2017, 21:20Есть ли шаблоны для типичных задач?
Ну это делается элементарно - берется (любой имеющийся по вкусу) шаблон для выгрузки по OLE, вызовы OLE заменяются вызовами библиотекм. Себе я примерно так и встроил, там правда три варианта на выбор - OLE (ABExcel), BIFF8 (Taboga), XLSX (libxlsxwriter). Кода при наличии обертки добавлется очень мало, буквально строчек 20-30

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

Добавлено: 07 Ноябрь 2017, 21:31
Дед Пахом
RaFaeL писал(а): 07 Ноябрь 2017, 21:28Ну это делается элементарно
Это всё несерьёзно. Я хочу иметь кнопку на окне, по которой выгружу броуз в Эксель, со всем форматированием, шириной колонок, цветом и т.д. Или отчёт - с шапкой, деталями...

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

Добавлено: 07 Ноябрь 2017, 22:02
Ал
Yufil писал(а): 07 Ноябрь 2017, 19:35 А на Python, интересно, сколько займёт. Из Clarion вполне вызываемо, и выглядит попроще. Завтра развлекусь...
смотрел в праздники на питоне библиотеку xlsxwriter, примеры копипастом с сайта..., запускаются - все "скучно", штатно, с первой попытки...
впрочем, так же как например, с openpyxl, которую "покрутил" до этого...

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

Добавлено: 08 Ноябрь 2017, 4:09
Admin
Все всё уже делали, у всех запускается, всем скучно.
Что же мы тогда тут эту тему, трем и трем!? :)

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

Добавлено: 08 Ноябрь 2017, 4:14
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

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

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