Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Добрый день ! Как передать данные с CSP в Excel ? в VB так Открыть Dim objExcel As Excel.Application Set objExcel = New Excel.Application objExcel.Visible = True objExcel.SheetsInNewWorkbook = 1 objExcel.Workbooks.Open ("C:\OdaKan8P\TABRNAY.xls") Читаем с Каше FCacheServer.VisM1.Value = "" i = "$G(^A(1))" FCacheServer.VisM1.Code = i FCacheServer.VisM1.ExecFlag = 1 Записать в таблицу With objExcel.ActiveSheet.Cells(1, 1).Value = FCacheServer.VisM1.Value Закрыть objExcel.Quit Set objExcel = Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 11:42 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Приятная сторона Excel состоит в том что он прекрасно понимает HTML поэтому со стороны сервера достаточно передать такой CSP файл: <script language="Cache" method="OnPreHTTP" arguments="" returntype="%Boolean"> set %response.ContentType = "application/x-msexcel" do %response.SetHeader("Content-Disposition","attachment;excel.xls") set %response.Expires = "Thu, 01 Apr 2003 00:00:00 GMT" Quit 1 </script> <html> <body> <table><tr><td> ... </td></tr></table> </body> </html> у меня на страницах таблички выводятся в ListView, над каждой табличкой кнопка которая собирает данные конкретной таблички в xml, передаёт на сервер а затем window.open("excel.csp?act=get&sessionid="+sessionid) excel.csp по пользователю в сессии отрисовывает данные ранее которые пришли в xml в формате html TABLE и отдаёт клиенту. Если интересно вышлю код кнопки и код excel.csp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 13:19 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Привет. Можно еще через буфер обмена и ActiveX. Но мы сейчас переходим на linux, openoffice и firefox, которые так не умеют, так что через content-type правильнее. =Сергей Шутов ООО Димас, Хабаровск //*** Excel *********************************************** // простое выравнивание строк и столбцов // shu 031214, 031229-orientation // namberFormat - столбцы в Excele для которых надо указать числовой формат. // указывается в формате "B:B;D:E" function PasteToExcel(str, lengthA, orientation,fontName,namberFormat,addExecute) { try { if ((lengthA == undefined) || (lengthA == null) || (lengthA == '')) { lengthA = 12; } if ((orientation == undefined) || (orientation == null) || (orientation == '')) { orientation = 1; } if ((str != null) && (str != undefined) && (str != "")) { var bool = window.clipboardData.setData("Text", str); if (bool = false) { return; } //# var ExcelApp = new ActiveXObject("Excel.Application"); var WorkBook = ExcelApp.WorkBooks.Add; ExcelApp.ActiveSheet.Paste; ExcelApp.Selection.VerticalAlignment = 1; ExcelApp.Selection.ColumnWidth = "50"; ExcelApp.Selection.Interior.ColorIndex = 0; // убираем подчеркивания для ссылок ExcelApp.Selection.Font.Underline = false; if (!((fontName == undefined) || (fontName == null) || (fontName == ''))) ExcelApp.Selection.Font.Name = fontName; else { ExcelApp.Selection.Font.Name = 'Courier New'; } // Ставим числовой формат в нужных столбцах if (!((namberFormat == undefined) || (namberFormat == null) || (namberFormat == ''))) { for (j=1; j<=Length(namberFormat,";"); j++) { ExcelApp.ActiveSheet.Columns(Piece(namberFormat,";",j)).Select; ExcelApp.Selection.NumberFormat = "#,##0.00"; } } ExcelApp.Columns("A:A").Select; ExcelApp.Selection.ColumnWidth = lengthA; ExcelApp.Columns("B:Z").Select; ExcelApp.Selection.Rows.AutoFit; ExcelApp.Columns("B:Z").Select; ExcelApp.Selection.Columns.AutoFit; ExcelApp.ActiveSheet.PageSetup.Orientation = orientation; // Устанавливаем ширину страницы ExcelApp.ActiveSheet.PageSetup.LeftMargin = 25 ExcelApp.ActiveSheet.PageSetup.RightMargin = 25 ExcelApp.ActiveSheet.PageSetup.Zoom = false; ExcelApp.ActiveSheet.PageSetup.FitToPagesWide = 1; ExcelApp.ActiveSheet.PageSetup.FitToPagesTall = 999; if((addExecute != null) && (addExecute != undefined) && (addExecute != "")) { eval(addExecute); } ExcelApp.ActiveSheet.Range("A1").Select; ExcelApp.ActiveSheet.Refresh; ExcelApp.Visible = true; } } catch(e) { alert(e.description); } } Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 05:56 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
logist А OpenOfficce открывается внутри браузера при получении такой страницы ? Ворд то вроде через OLE это делает ... или я что то запамятывал PS: Всегда нужно иметь запасной путь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 07:45 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Может открыться и внутри, но мы всегда отдельным окном открываем. Чтобы можно было нормально сохранить, напечатать и т.д. в привычном пользователю редакторе. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 08:47 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Добрый день ! ВСЕМ СПАСИБО !!! Вопрос снят ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:40 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Может кто-то из коллег в курсе, почему при открытии экселя через window.open(), когда в открываемом файле стоят заголовки, что он - Эксель, происходит: - открытие пустой страницы ИЕ - открытие Экселя Т.е. в итоге появляется лишняя пустая страница Эксплорера. Конечно, если закомментировать в OnPreHTTP Disposition, работает нормально: s %response.ContentType = "application/x-msexcel" //d %response.SetHeader("Content-Disposition","attachment;excel.xls") Причем фишка эта, похоже, связана с настройками клиентского компьютера... Вот только что это за настройки, не понятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 02:44 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Помогло прямое указание на _self при открытии окна... Однако не уверен, что везде это будет работать корректно. window.open("zen.PrintExcel.cls?DataFrom="+escape(data),"_self"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 02:55 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Если делать через html, возможны проблемы с кодировкой, побороть их не получилось. Зато офис старших версий (2003 например) понимает формать xml, там своя структура должна быть, по каким ключевым словам искать не помню. Но возможностей больше, например можно сделать несколько листов в документе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 14:42 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Если делать через html, возможны проблемы с кодировкой, побороть их не получилось. Зато офис старших версий (2003 например) понимает формать xml, там своя структура должна быть, по каким ключевым словам искать не помню. Но возможностей больше, например можно сделать несколько листов в документе. Берете Excel создаете документ на нескольких листах - сохраняете в виде html - смотрите что она написал... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Просто html нужно немного по другому генерить вот и все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 08:39 |
|
||
|
Передать данные с CSP в Excel ?
|
|||
|---|---|---|---|
|
#18+
интересно а есть ли функция в Cache которая сформирует такой выходной файл что бы потом его открыть с помощью Exсel ??? какие мысли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 16:50 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=69&tid=1558844]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 398ms |

| 0 / 0 |
