Как изменить ширину ячейки таблицы

Тема в разделе "Верстка", создана пользователем yaski, 21 сен 2014.

Информация :
Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с Правилами раздела и Правилами форума
Для быстрого поиска ответов на ваши вопросы воспользуйтесь Картой раздела и/или Поиском по разделу
Модераторы: ultra
  1. yaski

    yaski

    Регистр.:
    21 фев 2010
    Сообщения:
    474
    Симпатии:
    277
    Делаю вывод таблицы html в excel файл
    Стандартная ширина ячейки таблицы excel 8.43 знаков. Каким правилом с помощью mso- изменить ее?
     
  2. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.126
    Симпатии:
    668
    Каким образом? Какая библиотека используется? Причем здесь вообще верстка?
     
  3. yaski

    yaski

    Регистр.:
    21 фев 2010
    Сообщения:
    474
    Симпатии:
    277
    пациент

    Первая колонка выводиться шириной 256px, а надо в 2 раза шире, чтоб при печати читаемый вид был
    исходник
    PHP:
    <?php

    require_once('api/Simpla.php');
    $simpla = new Simpla();

    header('Content-Type: text/html; charset=windows-1251');
    header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0'FALSE);
    header('Pragma: no-cache');
    header('Content-transfer-encoding: binary');
    header('Content-Disposition: attachment; filename=price.xls');
    header('Content-Type: application/x-unknown');
    print 
    "
    <!DOCTYPE HTML>

    <html>
    <head>
    <base href='"
    .$simpla->config->root_url."'/>
    <title>Прайс-лист :: "
    .$simpla->settings->site_name." :: ".$simpla->settings->company_name."</title>
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
    <meta http-equiv='Cache-Control' content='public'>
        <!--[if gte mso 9]>
    <xml>
    <x:ExcelWorkbook>
      <x:ExcelWorksheets>
       <x:ExcelWorksheet>
        <x:Name>Прайс</x:Name>
        <x:WorksheetOptions>
         <x:Print>
          <x:ValidPrinterInfo/>
          <x:PaperSizeIndex>9</x:PaperSizeIndex>
          <x:Scale>60</x:Scale>
          <x:HorizontalResolution>600</x:HorizontalResolution>
          <x:VerticalResolution>0</x:VerticalResolution>
         </x:Print>
         <x:ShowPageBreakZoom/>
         <x:Selected/>
         <x:TopRowVisible>36</x:TopRowVisible>
         <x:Panes>
          <x:Pane>
           <x:Number>3</x:Number>
           <x:ActiveRow>5</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:WindowHeight>10005</x:WindowHeight>
      <x:WindowWidth>10005</x:WindowWidth>
      <x:WindowTopX>120</x:WindowTopX>
      <x:WindowTopY>135</x:WindowTopY>
      <x:ProtectStructure>False</x:ProtectStructure>
      <x:ProtectWindows>False</x:ProtectWindows>
    </x:ExcelWorkbook>
    </xml>
        <![endif]-->

    </head>
    <body>

    "
    ;


    $categories $simpla->categories->get_categories_tree();
    $treefunc=tree($categories);

    print 
    "</body></html>";


    function 
    tree($c) {

             
    $simpla = new simpla();

             
    // Валюты
            
    $currencies $simpla->money->get_currencies(array('enabled'=>1));
            
    $currency_code reset($currencies)->sign;

          foreach(
    $c as $cat){

            if(
    $cat->visible==1){

                
    // Товары
                
    $simpla->db->query("SET SQL_BIG_SELECTS=1");


                
    $simpla->db->query("SELECT p.id FROM __products p LEFT JOIN __products_categories pc ON p.id = pc.product_id LEFT JOIN __categories pcat ON pc.category_id = pcat.id              
                        WHERE p.visible AND pcat.visible AND pc.category_id=
    $cat->id ORDER BY p.id");
                  
                
    $print_tbl 0;
                
    $catw 1200// Ширина колонки с названием товара
                
    $catm 0;

                if(
    $simpla->db->result()){
                    
    $path_name "";
                    
    $print_tbl 1;
                        foreach(
    $cat->path as $path){

                            if (
    $path->parent_id>0){
                                
    $catw-=20// Величина отступа для подразделов
                                
    $catm+=20;
                                
    $path_name .= " &raquo; ";
                            }

                            
    $path_name .= esc($path->name);
                        }

                    print 
    "
    <table border=0 cellpadding=0 cellspacing=0 width=425 style='border-collapse:
    collapse;table-layout:fixed;width:319pt'>
    <col width=425 style='mso-width-source:userset;mso-width-alt:15542;width:319pt'>
    <tr height=20 style='height:15.0pt'>
      <td height=20 width=425 style='height:15.0pt;width:319pt'><strong>Наименование</strong></td>
          <td><strong>Цена, "
    .$currency_code."</strong></td>
    </tr>
    <![if supportMisalignedColumns]>
    <tr height=0 style='display:none'>
      <td width=425 style='width:319pt'><strong>Наименование</strong></td>
        <td><strong>Цена, "
    .$currency_code."</strong></td>
    </tr>
    <![endif]>"
    ;

    }


                
    $simpla->db->query("SELECT v.price, v.sku, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, pc.category_id
                        FROM __variants v LEFT JOIN __products p ON v.product_id=p.id
                  
                        LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1)
                  
                        LEFT JOIN __categories pcat ON pc.category_id = pcat.id
                  
                        WHERE p.visible AND pcat.visible AND pc.category_id=
    $cat->id AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position");
                  

                
    // В цикле мы используем не results(), a result(), то есть выбираем из базы товары по одному,
                // так они нам одновременно не нужны - мы всё равно сразу же отправляем товар на вывод.
                // Таким образом используется памяти только под один товар
                
    $prev_product_id null;


                while(
    $p $simpla->db->result())
                {

                    
    $sku '';
                    if (
    $p->sku)
                        
    $sku ' :: артикул: '.$p->sku;
                  
                    
    $variant_url '';
                    if (
    $prev_product_id === $p->product_id)
                        
    $variant_url '?variant='.$p->variant_id;
                    
    $prev_product_id $p->product_id;

                    
    $price $simpla->money->convert($p->price$main_currency->idtrue);

                    
    // Если не хотим отделять разряды
                    //$price = round($simpla->money->convert($p->price, $main_currency->id, false),2);
                    
    print
                    
    "<tr>
                        <td height=40 width=425 style='height:15.0pt;width:319pt'><a href='"
    .$simpla->config->root_url.'/products/'.$p->url.$variant_url."' target='_blank'>".esc($p->product_name).($p->variant_name?' ('.esc($p->variant_name.')'):'').esc($sku)."</a>
                        </td>"
    ;
                    print 
    "<td>$price</td>
                    </tr>
                    "
    ;
                }

                if(
    $print_tbl == 1)
                    print 
    "</tbody></table><br/>";
          


                if (
    $cat->subcategories)
                    
    $treefunc=tree($cat->subcategories);
          
      
      
            }  
      
        }

    }


    function 
    esc($s)
    {
        return(
    htmlspecialchars($sENT_QUOTES'UTF-8'));
    }