Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   ПОмогите с XML. Как его создавать в Excel (http://www.flasher.ru/forum/showthread.php?t=136501)

kaetano 18.02.2010 16:41

ПОмогите с XML. Как его создавать в Excel
 
Здравствуйте.
Подскажите, как создавать и редактировать XML файлы в Excele. И чтобы в таблице отображались не напрямую значения из XML, а их нормальная интерпретация (у меня используются индексы для дальнейшего использования во флеше), а пользователю с этими индексами работать не очень-то удобно. Так вот как сделать чтоб Excel заменял их на удобоваримые значения (выпадающий список).
Это все делается с помощью VBA, наверно?

Если кто знает хорошее пособие для изучения этой темы - киньтесь ссылкой, плиз.

Спасибо!

Apikaster 26.08.2011 18:22

Код AS3:

package excel
{
        import flash.net.FileReference;
 
        import mx.collections.ArrayCollection;
 
        public class ExcelExport
        {
                public function ExcelExport(data:ArrayCollection)
                {
                        var ExpandedColumnCount:Number = /*вычисляем и пишем сколько столбцов, function () {} и т.д. и т.п.*/ 1;
                        var ExpandedRowCount:Number = /*вычисляем и пишем сколько строк*/ 1;
                        var xml:String = new String();
                        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">';
                        xml += '<Worksheet ss:Name="Лист">';
                        xml += '<Names>'+
                                  '<NamedRange ss:Name="_FilterDatabase" ss:RefersTo="=Лист1!R1C1:R20C3" ss:Hidden="1"/>'+ // тут тоже должен указывать всякие индексы с excel
                                  '</Names>';
                        xml += '<Table ss:ExpandedColumnCount="'+ExpandedColumnCount+'" ss:ExpandedRowCount="'+ExpandedRowCount+'" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15">';
                        for (var row:Object in data){
                                xml += '<Row ss:AutoFitHeight="0">';
                                        //вычисляем сколько keys есть и на каждый создаем еще =>
                                                //<Cell><Data ss:Type="String">asdasdasd</Data></Cell> не ошибись тут, со String и Number-ом. и вписываем между тегами слово либо значение
                                                //<Cell><Data ss:Type="Number">123123123</Data></Cell>
                                xml += '</Row>';
                        }
                        xml += '</Table>';
                        xml += '<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">'+
                                  '<FitToPage/>'+
                                  '<Print>'+
                                    '<ValidPrinterInfo/>'+
                                    '<PaperSizeIndex>9</PaperSizeIndex>'+ // дальше подстрайваешь все под себя
                                    '<Scale>95</Scale>'+ // тут
                                    '<HorizontalResolution>600</HorizontalResolution>'+ // тут
                                    '<VerticalResolution>0</VerticalResolution>'+ // тут
                                  '</Print>'+
                                  '<Selected/>'+
                                  '<Panes>'+
                                    '<Pane>'+
                                    '<Number>3</Number>'+
                                    '<ActiveRow>6</ActiveRow>'+ // тут
                                    '<ActiveCol>1</ActiveCol>'+ // тут
                                    '</Pane>'+
                                  '</Panes>'+
                                  '<ProtectObjects>False</ProtectObjects>'+
                                  '<ProtectScenarios>False</ProtectScenarios>'+
                                  '</WorksheetOptions>'+
                                  '<AutoFilter x:Range="R1C1:R20C3" xmlns="urn:schemas-microsoft-com:office:excel">'+ // и тут
                                  '</AutoFilter>'+
                                '</Worksheet></Workbook>';
                        var file:FileReference = new FileReference();
                        file.save(xml, "data.xls");
                }
        }
}

Сам не проверял просто набросал. Но теоретический он должен работать. =))


Часовой пояс GMT +4, время: 18:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.