1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Экспорт в Excel с использованием Symphony

Тема в разделе "Lotus - Программирование", создана пользователем NetWood, 14 май 2009.

  1. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    Плиз подкинуть базку или примерчик LS импорт в Excel файл с использованием Symphony.
    Стандартно с MS примеров масса и у самого есть и в песочнице, а на Symphony нет опыта никакого...
    Надумали web-ом перезжать на Linux, да там там агентец один на MS надо переделывать.

    Мне уже давал ENT ссылки на зеленом, да "лежит" он :( потерялось.
    Буду весьма признателен.
     
  2. allex

    allex Гость

  3. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ежели задумали "переезжать", то агент с использованием КОМ не подойдет (работать CreateObject будет тока в виндозе)

    про эхель (из вашего поста не понятно - что конкретно делать собираетесь)
    http://www.rgagnon.com/javadetails/java-0516.html

    ODF - формат основанный на сжатом XML + объекты графики и прочего
    можете работать с пом. записи XML напрямую, если касается только текста...
    Сергей здесь выкладывал код
    есть ODFToolkit
    http://odftoolkit.openoffice.org/nonav/odfdom/javadoc/
    там также есть работа на основе шаблонов
    как пример реализации http://wiki.services.openoffice.org/wiki/ODFXSLTRunner
    ОО необязательно ставить тогда

    ежели поставить ОО - то можно воспользоваться http://udk.openoffice.org/
     
  4. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    Благодарю за ссылки. java боюсь не осилю :)
    Немного ввел в заблуждение сообщество. Речь идет о экспорте в Excel текстовой инфы с форматирование и пр.
    ODS еще не все понимают.
    В общем действительно необходимо найти замену для suse без COM или другим способом
    пример следующего кода
    filename = "C:\order_"+ Cstr(orderID) + ".xls"
    Set xlApp = CreateObject("Excel.Application.11")
    xlApp.Visible = False

    Set xlWB = xlApp.Workbooks.Add 'создаем новую книгу
    Set xlSheet = xlWB.Sheets(1) ' выбираем первую "страницу"
    xlsheet.Activate
    xlsheet.Name = "Order"

    ARangeValue = xlsheet.Range("A1").Activate
    ...
    ''тут заполнение строк
    Set itemdoc = order.GetFirstDocument
    Do While Not itemdoc Is Nothing
    i = i+1 '' счетчик строк excel
    Call agentLog.LogAction( " qty = " + Cstr(itemdoc.Qty(0)))
    With xlsheet
    .Range("A" & Trim(Str(i + 1))).Value = Cstr(i-n+1) ' номер по порядку
    .Range("B" & Trim(Str(i + 1))).Value = itemdoc.Title(0)
    .Range("C" & Trim(Str(i + 1))).Value = itemdoc.CatalogNumber(0)
    .Range("D" & Trim(Str(i + 1))).Value = itemdoc.Qty(0)
    .Range("E" & Trim(Str(i + 1))).Value = itemdoc.Price(0)
    .Range("F" & Trim(Str(i + 1))).Value = itemdoc.qty(0) * itemdoc.Price(0)
    .Range("G" & Trim(Str(i + 1))).Value = itemdoc.Packing(0)
    '' .Range("H" & Trim(Str(i + 1))).Value = itemdoc.PageName(0)
    '' .Range("I" & Trim(Str(i + 1))).Value = itemdoc.UserName(0)
    End With
    Set itemdoc = order.GetNextDocument(itemdoc)
    Loop
    ...
    xlapp.activeworkbook.saveas filename
    xlapp.activeworkbook.close
    xlapp.quit
    Set xlSheet = Nothing
    Set xlWB = Nothing
    Set xlapp = Nothing

    Понятно, что на Linux такое работать не будет. отсюда и ищу замену. Однако выходной фай должен быть .xls
     
  5. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    напрасно вы так про джава...
    приведенная первая ссылка вас выведет к проекту (в конце там)
    http://sourceforge.net/project/platformdow...group_id=179746
    там и дока достаточно подробная есть и jar
    jar кладем в jvm/lib/ext в домине
    ежели тяжко на джаве - пишем бридж LS2J
    джава класс в пустым конструктором (шб не морочиться с инициализацией типов в LS) и методами с передачей стрингов (параметров)
    и рулим джава кодом из LS
    примеры там есть (по ссылкам) - просто вставьте код в библиотеку и подключайте ёе в бридж (примеры в хэлпе)
    у меня нет под рукой Нотусов - не могу код набросать и оттестить

    вот из доки (куски понадергал):
    Example (Unix):
    WorkBookHandle mybook = new WorkBookHandle("/home/username/OpenXLS4/explore.xls");
    WorkSheetHandle sheet = mybook.getWorkSheet("Sheet1");
    CellHandle cell = sheet.getCell("B2");
    String s = cell.getStringVal(); // gets String representation of Cell
    
Object s = cell.getVal(); // gets actual Cell value (Double, String, Integer, etc.

    и там еще много чего
     
  6. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    прям для вашего варианта...
    есть для работы с рэнжем:
    // this will throw a CellNotFoundException if the name is not found.
    NameHandle nand = mybook.getNamedRange("nametest4");
    CellHandle[] ch = nand.getCells(); // access the Cells in the range
    for(int x = 0;x<ch.length;x++){
    ch[x].setVal(123 * x);
    ch[x].setFontColor(FormatHandle.PaleBlue);
    }
    System.out.println(nand.getName());

    Use the CellRange (String range, WorkBookHandle bk) constructor to create a range of cells, then use the NameHandle(String name, CellRange range) method to generate a Named range consisting of the range of Cells specified.

    Example:
    // Create new NameHandle from a CellRange

    CellRange range = new CellRange( "Sheet1!D8:D13", mybook);
    
NameHandle newname = new NameHandle("NewNamedRange",range);
     
  7. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    Сэнкс за тычок! Верно ли я понимаю, что это кросс платформенное решение?
    Тщательно выкурив - получим export-import excel работающий что на win, что на linux?
    нда осилить бы :)

    re: никогда не лазил в \jvm. Там архивчик нашелся javadocs.zip После unzip мегов на 120 java help - кури нехочу
    Век живи - век учись
     
  8. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    да кроссплатформенное, но не рекомендую править файло созданное в МСО - не факт, но возможны глюки (обычно, МС продукты ни с чем нормально не совмещаются)
    осиливать там практич. нечего - берите готовый код (прям из доков по проекту)
    из хэлпа по разработке - пример LS2J
    ещё раз:
    -создаем класс, в библиотеке Java, с пустым конструктором
    -создаем методы, кот. на вход даем стринги (для работы с XLS)
    -создаем код инициализации LS2J (прям как в хэлпе дизайнера)
    -дергаем методы джава из LS
     
  9. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Можно еще попробовать родной XML формат Excel, его понимает Symphony
    Работаете с обычным XML но в Excel будет все красиво отформатировано.
    Попробуйте взять любой xls файл и в Excel сохранить его как "Таблица XML 2003" :

    Код (Text):
    <?xml version="1.0"?>
    <?mso-application progid="Excel.Sheet"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:html="http://www.w3.org/TR/REC-html40">
     
Загрузка...
Похожие Темы - Экспорт Excel использованием
  1. xkisss
    Ответов:
    0
    Просмотров:
    1.427
  2. valdymar
    Ответов:
    33
    Просмотров:
    2.967
  3. jorjva
    Ответов:
    7
    Просмотров:
    2.586
  4. seoman2
    Ответов:
    6
    Просмотров:
    133
  5. anna
    Ответов:
    5
    Просмотров:
    159

Поделиться этой страницей