web-dev-qa-db-fra.com

comment puis-je exporter le contenu d'un tableau vers Excel ou csv

J'utilise drupal 6, j'ai créé une table en utilisant

$tableHeader = array (     
  array('data' => 'Ebooks','field' => 'etitle'),
  array('data' => 'Volumes','field' => 'Volume' ),        
  array('data' => 'Chapter','field' => 'ctitle'),
  array('data' => 'Total Sale'),
);

$TableRows[] = array (
  l($row->etitle,$ebookinfo),
  $row->name,                              
  str_replace("&", "&" ,$row->ctitle ),                             
  round($row->totalsale,2).' $',
); 

$output .= theme('table', $tableHeader, $TableRows);// get the pager
$output .= theme('pager', NULL, 5, 0);

Comment puis-je l'exporter vers MS Excel ou CSV?

5
Sanjay dev

Que le code personnalisé ci-dessous vous soit utile.

définir l'en-tête

$filename= 'export.csv';
  drupal_set_header('Content-Type: text/csv');
  drupal_set_header('Content-Disposition: attachment; filename=' . $filename);

vous pouvez écrire une fonction (juste un exemple ci-dessous) en envoyant les valeurs de ligne, le nom de fichier et le titre de la colonne

<?php


function export_to_Excel_page($row_array, $filename,$column_titles) {

  drupal_set_header('Content-Type: text/csv');
  drupal_set_header('Content-Disposition: attachment; filename=' . $filename);

  foreach($column_titles as $key => $value) {
           $keys[] =$value;         
  }

  if($keys) print implode(',', $keys) ."\r\n";
  unset($keys);

    //fetching the field values
  foreach($row_array as $key => $value) {

   $values[] =$value; 

  }
    print implode(',', $values) ."\r\n";
    unset($values);
    }
    exit;

?>
7
user10644

Voici une fonction mise à jour qui devrait fonctionner pour D7.

<?php
/**
 * Exports a CSV.
 *
 * @param array $variables
 *   An associative array of data containing "header" and "rows" keys.
 *   This is ready to be passed to theme_table(). See api.drupal.org/node/22950.
 *   Also contains the key "filename" specifying the filename.
 */
function _epc_standards_statistics_export_csv($variables) {
  drupal_add_http_header('Content-Type', 'text/csv; utf-8');
  drupal_add_http_header('Content-Disposition', 'attachment; filename=' . $variables['filename']);

  $output = '';
  $keys = array();
  foreach ($variables['header'] as $key => $value) {
    $keys[] = $value['data'];
  }
  if ($keys) {
    $output .= implode("\t", $keys) . "\n";
  }
  foreach ($variables['rows'] as $value) {
    $output .= implode("\t", $value) . "\n";
  }
  print $output;
  exit;
}
?>
5
user892592

Si vous essayez d'exporter du contenu Nodes, vous pouvez utiliser le module views_data_export et exporter du contenu en utilisant des vues!

Ce module est conçu pour fournir un moyen d'exporter de grandes quantités de données à partir de vues. Il fournit un plugin d'affichage qui peut être rendu progressivement dans un lot. Des plugins de style sont inclus qui prennent en charge l'exportation dans les types suivants:

CSV, Microsoft XLS, Microsoft DOC, Basic, TXT, XML.

Si vous souhaitez exporter des données de tables de base de données, vous pouvez envisager le module data .

Le module de données vous aide à modéliser, gérer et interroger des ensembles de tables associés. Il offre une interface d'administration et une API de bas niveau pour manipuler les tables et accéder à leur contenu. Le module de données fournit une intégration de vues pour l'affichage des données de table et une intégration de recherche Drupal pour la recherche de contenu de table.

0
Anil Sagar