Получение Данных И Сохранение В Excel Из Лотуса (windows 7!)

  • Автор темы Автор темы oxystile
  • Дата начала Дата начала
В любом случае, для решения этой задачи эй понадобиться изучить xml и, вероятно, xslt, а также формат xml-документа екселя и сопутствующуюю инфу.
Имхо, хорошая задача из разряда разобраться в будущем, но для решения задачи топика слишком толстое решение.
зачем такие сложности?
открыть ворд, сохранить как *.XML
и создать точно такой же бинарник, но только средствами лотуса
всего-то нужно сохранить куда-то в настройки "шапочку" и "концовку" офисного XML и вставлять свои данные внутрь обычным файловым принтом забив на изучение XMLя впринцыпе
 
to Akupaka
сохраняю потому как задача такая, файл статистики сохранять в лотус-документе. В смысле но нажатию на "Report" формируется excel док, затем формируется новый документ в лотус базе в котором этот файл и сохраняется. Идея не моя))

to ToxaRat
а принтами (в случае, если это просто таблица) Print "<table>" и так далее c <td> и <tr>?
 
затем формируется новый документ в лотус базе в котором этот файл и сохраняется
Тогда темповая папка вполне подходит, я думал, что файл на диске отдается пользователю в пользование. А, если тянется сразу в базу, то иначе врядли получится.

Что принтами? :) Ты сформулируй для себя задачу нормально в виде: "хочу чтобы это так превратилось в вот такой результат".
Чтобы создать любой файл на диске, удобно пользоваться объектом класса NotesStream
 
сохраняю потому как задача такая, файл статистики сохранять в лотус-документе
вот тогда точно не подходит КОМ
ХМЛ - возможно...
библиотеку, кот. я выкладывал - можно немного дотюнить (под сохранение файла сразу в ДХЛ)
и ничего не надо будет на диске создавать
 
и ничего не надо будет на диске создавать
т.е. ты утверждаешь, что можно получить вложение в документе без участия файловой системы? Через кодирование в base64 и dxl?
Надеюсь, что хоть ты порекомендуешь перед этим изучить xml? :)
 
to ToxaRat
а принтами (в случае, если это просто таблица) Print "<table>" и так далее c <td> и <tr>?

вот кусок хелпа по принту
Код:
Dim nVar As Variant, eVar As Variant
nVar = NULL
Dim fileNum As Integer
fileNum% = FreeFile()
Open "printext.txt" For Output As fileNum%
' Print two lines to the file and close it.
' First line: two String values, with no separation between.
Print #fileNum%, "First line, "; "with two String items"
' Second line: NULL value, EMPTY value, Integer variable
' value, and String value, separated on the line by tabs.
Print #fileNum%, nVar, eVar, fileNum%, "at next tab"
Close fileNum%
' Open the file, print it, and close the file.
Dim text As String
Open "printext.txt" For Input As fileNum%
Do Until EOF(fileNum%)
' Read and print to console, one line at a time.
Line Input #fileNum%, text$
Print text$
Loop
Close fileNum%
' Output:
' First line, with two String items
' NULL					 1			at next tab


а вот как выглядит XML файл для екселя
Код:
<?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">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>***</Author>
<LastAuthor>***</LastAuthor>
<Created>2011-10-20T10:12:51Z</Created>
<Company>***</Company>
<Version>11.9999</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>10875</WindowHeight>
<WindowWidth>18060</WindowWidth>
<WindowTopX>240</WindowTopX>
<WindowTopY>60</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Arial Cyr" x:CharSet="204"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
<Worksheet ss:Name="Лист1">
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1">
<Column ss:AutoFitWidth="0" ss:Width="91.5" ss:Span="1"/>
<Column ss:Index="3" ss:AutoFitWidth="0" ss:Width="97.5"/>
<Row>
<Cell><Data ss:Type="String">Первая колонка</Data></Cell>
<Cell><Data ss:Type="String">Вторая колонка</Data></Cell>
<Cell><Data ss:Type="String">Третья колонка</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell><Data ss:Type="Number">3</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<Selected/>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Лист2">
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Лист3">
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>



самый важный кусок это сами данные
Код:
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1">
<Column ss:AutoFitWidth="0" ss:Width="91.5" ss:Span="1"/>
<Column ss:Index="3" ss:AutoFitWidth="0" ss:Width="97.5"/>
<Row>
<Cell><Data ss:Type="String">Первая колонка</Data></Cell>
<Cell><Data ss:Type="String">Вторая колонка</Data></Cell>
<Cell><Data ss:Type="String">Третья колонка</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell><Data ss:Type="Number">3</Data></Cell>
</Row>
</Table>

теперь попробуйте отпринтовать эти данные в любой файл, и считайте что все ваши отчёты в екселе спокойно можно сформироваться без офиса вообще, главное чтобы на клиенте был пакет офиса для их открытия
что тут сложного?
простая команда
Print #fileNum%, "нужная текстовая строка"
этому же даже в школе учат на бейсике
 
хмл полюбасу учить надо (но тока не хмл, а подходы к его обработке)
в данном случае считаю учить XML лишнее, любой парсе лишь замедил скорость построения отчёта, нужна однопроходная техника принтования данных в обычный тектовый файл
 
в данном случае считаю учить XML лишнее, любой парсе лишь замедил скорость построения отчёта, нужна однопроходная техника принтования данных в обычный тектовый файл
Без знания XML можно напринтовать в отчёт недопустимых символов (тех же кавычек) и потом долго ломать голову, почему ничего не работает.
 
нужна однопроходная техника принтования данных в обычный тектовый файл
вот тока осталось её написать :RTFM: при том, что код написанный неоптимально будет медленнее, чем хороший парсер
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab