Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2012, 15:48   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
    Node.ChildNodes.Nodes['Data'].setAttribute('xml:space','preserve');
    Node.ChildNodes.Nodes['Data'].Text:='111'+#10+'222';

<Cell ss:StyleID="s21"><Data ss:Type="String" xml:space="preserve">111$d$a222</Data></Cell>
Я как раз понял, но Excel не понял и игнорирует управляющие символы в таком виде. Они, кстати, вставляются и без xml:space="preserve". Ему надо или & #10; или
<![CDATA[111$a222]]>, но здесь еще избавиться от $d нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 19.12.2012 в 18:01.
Аватар вне форума Ответить с цитированием
Старый 20.12.2012, 06:46   #12
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var doc,node:variant;
i:integer;
begin
	doc:=CreateOleObject('Msxml2.DOMDocument') as IDispatch;
//1 способ для всего документа разом
  doc.preserveWhiteSpace:= true;
  doc.appendChild(doc.createProcessingInstruction('xml',' version="1.0" encoding="windows-1251"'));
	doc.documentElement:=doc.createElement('root');
//2 способ распространить на всех чаилдов
  //doc.documentElement.setAttribute('xml:space','preserve');
  for i:=0 to 10 do
  begin
    node:=doc.createElement('Data');
    doc.documentElement.appendChild(node);
//3 способ для кажного чаилда по необходимости
    //Node.setAttribute('xml:space','preserve');
    Node.text:='111'#13#10'222'#13#10'333';
  end;
  doc.save('data.xml');
end;
Изображения
Тип файла: gif scr.gif (11.3 Кб, 45 просмотров)
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 20.12.2012 в 06:49.
Slym вне форума Ответить с цитированием
Старый 22.12.2012, 13:41   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Нужно было с самого начала указать, что xml-файл это xml-таблица в формате Excel. Именно он требует перевода строки в формате & #10; игнорируя двоичные вставки и не известные ему атрибуты.
Вставка в двоичном виде $d$a любым способом - хоть с xml:space="preserve", хоть без него, то ли используя TAMLDocument, то ли через олеобъект в этом формате не воспринимается. Вот если открыть как xml-список, тогда Excel ест эти управляющие как положено.
Slym, спасибо за участие, +1, к сожалению в репу не дает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка строки bogdanchek C# (си шарп) 2 26.01.2012 18:10
Как упорядочить данные (перевести данные из стольбцов в строки)? opeck Microsoft Office Excel 3 21.11.2011 01:43
Вывод символа перевода строки из МЕМО в текст. файл (Delphi) ChEaTeR-abc Помощь студентам 5 02.07.2010 20:43
Как в текстовом файле распознать символ перевода строки? mzelenyy Общие вопросы C/C++ 4 12.06.2010 11:30
как присвоить char'у символ перевода строки? Retiz Помощь студентам 6 06.04.2008 00:05