Бывалый
Профиль
Группа: Участник
Сообщений: 177
Регистрация: 29.7.2004
Где: г. Великие Луки
Репутация: нет
Всего: 1
Доброго дня, друзья!
У меня стоит такая задача — хочу с помощью Delphi7 отправить в Excel файл XML.
То есть, в самой Дельфи я не делаю никакой обработки XML-файла а просто запускаю Excel и кидаюсь в него XML-файлом.
Дальше уже внутри Excel я собираюсь его средствами Дельфи обрабатывать.
Делаю я это вот так:
Код |
|
Проблема в том, что файл открывается таким способом как простой xls, в виде таблицы, некорректно отображая структуру и содержание XML. Я же хочу сделать так, как это делает сам Excel, когда им открываешь XML-файл, он спрашивает в каком виде открыть, в виде XML-таблицы или еще там варианты. И когда я в его окошке выбираю в виде XML-таблицы, он красиво его открывает.
Когда я попробовал сделать макрос в VB Excel, там прописывается параметр LoadOption=xmlToXMLTable, или чет-типа этого. Как такую опцию сделать в Дельфи?
Нашел решение, подсмотрел как VB макрос делает, только в Delphi это выглядит вот так:
Код |
|
и очень красиво открывается, так как мне и нужно
Спасибо всем.
Это сообщение отредактировал(а) Slawanix — 15.4.2010, 11:54
———————
моск кипит
osminog 5 / 5 / 2 Регистрация: 31.05.2010 Сообщений: 80 |
||||
1 |
||||
29.07.2012, 16:33. Показов 5309. Ответов 2 Метки нет (Все метки)
Добрый день, уважаемые программисты!
Нужно: 3. По окончанию, остановить процесс переноса данных, сохранить в Excell с названием открытого файла и открыть сам файл Excel. Буду рад любой информации, что бы знать, хоть в какую сторону «копать»!!! Я никогда не работал с форматом XML, а тем более перевод его в Excel Заранее, спасибо!
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
29.07.2012, 16:33 |
Ответы с готовыми решениями: Работа с текстом (txt, xml) Работа с XML через System.Xml Работа с текстом Представте себе небольшой текст несколько предложений, размещеный на… Работа с текстом в VB 2 |
Arcor 5688 / 2279 / 466 Регистрация: 20.11.2009 Сообщений: 7,680 Записей в блоге: 1 |
||||||||||
29.07.2012, 20:49 |
2 |
|||||||||
Сообщение было отмечено как решение Решениеобразовалось несколько вопросов. XML файл не выложен самое начало, не видно как идет само дерево, предположительно я сделал вот так вот, добавил еще одну главную ветку, и в нее потом вложил то что вы привели, иначе не отпарсишь весь файл, а только один такой блок ! Добавил я ветку la. Вот на примере покажу как
в этот тег вложил для проверки парса, еще несколько блоков по структуре приведенной выше
получилось вот так вот сама еще программа в архиве и сам xml файл, немного модифицированный, прошу отписать на счет вашего xml оригинала, как там ветки построены !!! Чтобы если что, исправить по быстрому вам прграмму Удачи Вложения
3 |
osminog 5 / 5 / 2 Регистрация: 31.05.2010 Сообщений: 80 |
||||||||||||
04.08.2012, 20:01 [ТС] |
3 |
|||||||||||
образовалось несколько вопросов. XML файл не выложен самое начало, не видно как идет само дерево, предположительно я сделал вот так вот, добавил еще одну главную ветку, и в нее потом вложил то что вы привели, иначе не отпарсишь весь файл, а только один такой блок ! Добавил я ветку la. Вот на примере покажу как
в этот тег вложил для проверки парса, еще несколько блоков по структуре приведенной выше
получилось вот так вот сама еще программа в архиве и сам xml файл, немного модифицированный, прошу отписать на счет вашего xml оригинала, как там ветки построены !!! Чтобы если что, исправить по быстрому вам прграмму Удачи Очень Вы в тему попали (огромное спасибо)
т.к. он очень большой! Вы помогли с самым началом, за что огромное спасибо, но к сожалению, это только начало моего пути.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
04.08.2012, 20:01 |
Помогаю со студенческими работами здесь Работа с текстом Работа с текстом Работа с текстом 8% · New 53 of 639 Мне… Работа с текстом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 3 |
Я хочу экспортировать данные в excel из Delphi без необходимости иметь копию excel, возможно ли это?
N. B. CSV не подойдет.
1186
8
8 ответов:
Попробуйте zexmlss . Эта библиотека может создавать и загружать файлы формата excel 2003 XML. Поддержка объединенных ячеек, границ, вертикального и горизонтального выравнивания и др. Лицензия Zlib. Работайте с delphi 6, 7, 9-14 и lazarus.
Я считаю, что можно создавать документы MS Office в формате HTML. Вам не нужно открывать их в веб-браузере или что-нибудь еще, файл все еще может иметь расширение .xls и открыть в Excel, как обычно.
Я только что создал новую электронную таблицу и вставил числа 1-3 в первые три ячейки столбца A, и сохранил ее как HTML. Там была куча лишнего беспорядка, который, вероятно, не так уж и необходим. Я снял столько, сколько мог, вот что выглядит как минимум, чтобы произвести рабочая таблица.
Попробуйте создать новый текстовый файл с этим в качестве его содержимого и сохраните его с a .расширение xls.
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <!--[if gte mso 9]><xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name>Sheet1</x:Name> <x:WorksheetOptions> <x:Selected/> <x:Panes> <x:Pane> <x:Number>3</x:Number> <x:ActiveRow>3</x:ActiveRow> </x:Pane> </x:Panes> <x:ProtectContents>False</x:ProtectContents> <x:ProtectObjects>False</x:ProtectObjects> <x:ProtectScenarios>False</x:ProtectScenarios> </x:WorksheetOptions> </x:ExcelWorksheet> </x:ExcelWorksheets> </x:ExcelWorkbook> </xml><![endif]--> </head> <body> <table x:str> <tr> <td x:num width=64>1</td> </tr> <tr> <td x:num>2</td> </tr> <tr> <td x:num>3</td> </tr> </table> </body> </html>
OExport-XLSX / ODS native Delphi Import / export library
- никакие внешние библиотеки dll не требуются
- нет зависимости от установки Excel или Calc (нет OLE)
- полная поддержка unicode даже для D7, D2007
Поддерживаемые типы ячеек: string, number, percent, formula, time, date, datetime
- форматирование ячеек: ширина ячейки+высота, горизонтальное + вертикальное выравнивание, перенос текста, шрифт, цвет фона, границы
- col / row span
- испытано и работает под Delphi 2007 и XE2 32bit+64bit: должны быть совместимы со всеми D7 до XE2
- Новая OFiller: заполнить в формате docx (для Word 2007), файлы odt (OpenOffice писатель), XLSX-файл (в Excel 2007), СОД (в OpenOffice Calc, в) шаблоны
Http://www.kluug.at/xlsx-ods-delphi.php
Лицензии МПЛ/GPL и LGPL три лицензии
Версия: MPL 1.1/GPL 2.0 / LGPL 2.1
SMExport from Scalabium (scalabium.com ) включает в себя множество форматов, включая формат Excel с установленным Excel или без него.
Библиотека TXLSFile V. 4. 0. и компоненты XLSExport
Мы успешно использовали с D2007, D2009 и D2010
Что такое TXLSFile
TXLSFile is a Delphi library for reading and writing MS Excel XLS files. It is based on direct reading and writing of files, and works without OLE Automation with Microsoft Excel. TXLSFile is distributed with XLSExport components package. XLSExport is a Delphi components package for quick data export into MS Excel file with one line of code.
Http://sm-software.com
Существует очень простой способ достичь этого и заключается в использовании текстового файла. Просто выведите данные, каждое поле, за которым следует запятая, а затем возврат каретки. Сохраните этот файл с a .Расширение CSV. Это все еще должно работать в Excel, я использую открытые продается офисная в эти дни
Excel4Delphi
Read, Write excel 2002/2003 XML (SpreadsheetML / XML Spreadsheet) library.
fork from https://github.com/Avemey/zexmlss
Exchamples
// Creating new workbook var workBook: TZWorkBook; ... workBook := TZWorkBook.Create(); try workBook.Sheets.Add('My sheet'); workBook.Sheets[0].ColCount := 10; workBook.Sheets[0].RowCount := 10; workBook.Sheets[0].CellRef['A', 0].AsString := 'Hello'; workBook.Sheets[0].RangeRef['A', 0, 'B', 2].Merge(); workBook.SaveToFile('file.xlsx'); finally workBook.Free(); end
// Editing exists workbook var workBook: TZWorkBook; ... workBook := TZWorkBook.Create(); try workBook.LoadFromFile('file.xlsx'); workBook.Sheets[0].CellRef['A', 0].AsString := 'Hello'; workBook.Sheets[0].CellRef['A', 0].FontStyle := [fsBold]; workBook.SaveToFile('file.xlsx'); finally workBook.Free(); end
I’m looking to export data to excel from Delphi without having to own a copy of excel, is this possible?
N.B. CSV will not do.
Jon Seigel
12.2k8 gold badges57 silver badges92 bronze badges
asked Mar 22, 2010 at 14:44
Try zexmlss. This library can create and load excel 2003 XML format files. Support merged cells, borders, vertical and horizontal alignment and other. Zlib license. Work with delphi 6, 7, 9-14 and lazarus.
answered Nov 7, 2010 at 20:01
HikikomoriHikikomori
1211 silver badge2 bronze badges
3
I believe it’s possible to create MS Office documents as HTML. You don’t need to open them in a web browser then or anything, the file can still have the extension .xls and open in Excel like normal.
I just created a new spreadsheet and stuck the numbers 1-3 in the first three cells of column A, and saved it as HTML. There was a bunch of extra mess that probably isn’t all necessary. I stripped out as much as I could, here’s what looks to be the bare minimum to produce a working spreadsheet.
Try creating a new text file with this as its contents, and save it with a .xls extension.
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Sheet1</x:Name>
<x:WorksheetOptions>
<x:Selected/>
<x:Panes>
<x:Pane>
<x:Number>3</x:Number>
<x:ActiveRow>3</x:ActiveRow>
</x:Pane>
</x:Panes>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>
<table x:str>
<tr>
<td x:num width=64>1</td>
</tr>
<tr>
<td x:num>2</td>
</tr>
<tr>
<td x:num>3</td>
</tr>
</table>
</body>
</html>
answered Mar 22, 2010 at 14:53
Matt BlaineMatt Blaine
1,96614 silver badges22 bronze badges
2
oExport — XLSX/ODS native Delphi import/export library
- no external dll libraries are required
- no dependency on Excel or Calc installation (no OLE)
- full unicode support even for D7, D2007
- supported cell types: string, number, percent, formula, time, date, datetime
- cell formatting: cell width+height, horizontal+vertical alignment, wrap text, font, background color, borders
- col/row span
- tested and working under Delphi 2007 and XE2 32bit+64bit: should be compatible with all D7 to XE2
- NEW OFiller: fill DOCX (Word 2007), ODT (OpenOffice Writer), XLSX (Excel 2007), ODS (OpenOffice Calc) templates
http://www.kluug.at/xlsx-ods-delphi.php
licensed under a MPL/GPL/LGPL tri-license
Version: MPL 1.1/GPL 2.0/LGPL 2.1
answered Mar 14, 2012 at 1:46
ErwanErwan
2023 silver badges10 bronze badges
3
SMExport from Scalabium (scalabium.com) includes lots of formats, including Excel format with or without having Excel installed.
answered May 9, 2010 at 6:38
Rob McDonellRob McDonell
1,3099 silver badges15 bronze badges
NativeExcel mentioned earlier is from Nika-Soft. Not free, but it works fine. I am using it now for over one year without problems. http://www.nika-soft.com/nativeexcel2/
answered May 9, 2010 at 9:03
ChristianChristian
7037 silver badges15 bronze badges
TXLSFile library v.4.0. and XLSExport components
We’ve used successfully with D2007, D2009 & D2010
What is TXLSFile
TXLSFile is a Delphi library for reading and writing MS Excel
XLS files. It is based on direct reading and writing of files,
and works without OLE Automation with Microsoft Excel.
TXLSFile is distributed with XLSExport components package.
XLSExport is a Delphi components package for quick data
export into MS Excel file with one line of code.
http://sm-software.com
answered May 9, 2010 at 15:16
rhazellrhazell
2851 gold badge3 silver badges5 bronze badges
theree is a very simple way to achive this and is by use of a text file. Simply output the data, each field followed by a comma, followed by a carriage return. Save this file with a .CSV extension. This should still work on Excel; I use Open Officw these days
answered Dec 22, 2013 at 17:05
1