Может у кого есть исходный код по разархивированию ODF, поиску в нем определенных тегов, замены этих тегов на определенные выражения, вводимые пользователем в программе, и заархивированием опять в ODF
Буду премного благодарен, просто срочно нужно, а времени разбираться с этим совершенно нету
Или может уже есть какой компонент под лазарус?
Работа с ODF(Open office) как с архивом
Модератор: Модераторы
http://wiki.services.openoffice.org/wiki/AODL для .Net
http://wiki.services.openoffice.org/wiki/Odf4j для Ява.
Для Паскаля нет. Ни в каком виде. Тебе все прийдется делать ручками/писать самому библиотеку. А это очень сложно.
Пример кода для VB.Net:
http://wiki.services.openoffice.org/wiki/Odf4j для Ява.
Для Паскаля нет. Ни в каком виде. Тебе все прийдется делать ручками/писать самому библиотеку. А это очень сложно.
Пример кода для VB.Net:
Код: Выделить всё
Imports AODL.Document
Sub ExportODF(ByVal FileName As String)
'Create new spreadsheet document
Dim spreadsheetDocument As New SpreadsheetDocuments.SpreadsheetDocument
If System.IO.File.Exists(FileName) Then
spreadsheetDocument.Load(FileName)
Else
spreadsheetDocument.[New]()
End If
'Create a new table
Dim Jahr As Integer = CInt(JahrToolStripTextBox.Text)
Dim Monat As Integer = MonatToolStripComboBox.SelectedIndex + 1
Dim dt As New DateTime(Jahr, Monat, 1)
Dim table As New Content.Tables.Table(spreadsheetDocument, dt.ToString("MMMM yy"), "")
With DatenDataGridView
For rowIndex As Integer = 0 To .RowCount - 1
For colIndex As Integer = 1 To .ColumnCount - 1
Dim cell As Content.Tables.Cell = table.CreateCell()
Dim curItem As DataGridViewCell = .Item(colIndex, rowIndex)
Dim curValue As Object = curItem.Value
If Not IsNothing(curValue) Then
If IsNumeric(curValue) Then
cell.OfficeValueType = SpreadsheetDocuments.Tables.Style.OfficeValueTypes.Float
Else
cell.OfficeValueType = SpreadsheetDocuments.Tables.Style.OfficeValueTypes.String
End If
'cell.CellStyle.CellProperties.Border = AODL.Document.Styles.Border.NormalSolid
cell.OfficeValue = curValue.ToString
End If
table.InsertCellAt(rowIndex + 1, colIndex + 1, cell)
Next
Next
End With
'Insert table into the spreadsheet document
spreadsheetDocument.TableCollection.Add(table)
spreadsheetDocument.SaveTo(FileName)
End Sub
-
PublicJoke
- новенький
- Сообщения: 41
- Зарегистрирован: 04.07.2006 12:21:07
Если вы хотите использовать документ в качестве шаблона для генерации отчета, можно попробовать заглянуть сюда: http://freepascal.ru/forum/viewtopic.php?t=2585&highlight=openoffice.
uno-pas-bridge - это не решение проблемы. На компе может и не быть OO.
А File-Save As ODF нужен.
Совет: если язык не важен - выбирай .Net. Если нужна кроссплатформенность - Ява (хотя заявлена совместимость AODL с Моно).
uno-pas-bridge - если ты завязан на Паскале, на всех компах будет стоять ОО и по каким-то причинам тебя не устраивает бесплатный Turbo Delphi 2006 Explorer.
А File-Save As ODF нужен.
Совет: если язык не важен - выбирай .Net. Если нужна кроссплатформенность - Ява (хотя заявлена совместимость AODL с Моно).
uno-pas-bridge - если ты завязан на Паскале, на всех компах будет стоять ОО и по каким-то причинам тебя не устраивает бесплатный Turbo Delphi 2006 Explorer.
uno-pas-bridge - если ты завязан на Паскале, на всех компах будет стоять ОО и по каким-то причинам тебя не устраивает бесплатный Turbo Delphi 2006 Explorer.
-------------------------------
Наверное так и поступлю, так как проект уже большой(это последнее, что осталось реализовать), переписывать на яве лень, пишется с учетом на кросс-платформенность. И ООо на машинах будет стоять
Благодарю всех за помощь
-------------------------------
Наверное так и поступлю, так как проект уже большой(это последнее, что осталось реализовать), переписывать на яве лень, пишется с учетом на кросс-платформенность. И ООо на машинах будет стоять
Благодарю всех за помощь
