web-dev-qa-db-ja.com

テーブルコンテンツをExcelまたはcsvにエクスポートする方法

drupal 6を使用しています。

$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);

MS ExcelまたはCSVにエクスポートするにはどうすればよいですか?

5
Sanjay dev

以下のカスタムコードが参考になりますように。

ヘッダーを設定する

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

行の値、ファイル名、および列のタイトルを送信して、関数(以下の例のみ)を作成できます

<?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

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

ノードのコンテンツをエクスポートする場合は、 views_data_export モジュールを使用して、ビューを使用してコンテンツをエクスポートできます。

このモジュールは、ビューから大量のデータをエクスポートする方法を提供するように設計されています。バッチで段階的にレンダリングできる表示プラグインを提供します。以下のタイプのエクスポートをサポートするスタイルプラグインが含まれています。

CSV、Microsoft XLS、Microsoft DOC、Basic、TXT、XML。

データベーステーブルのデータをエクスポートする場合は、 data モジュールを検討できます。

データモジュールは、テーブルの関連セットをモデル化、管理、およびクエリするのに役立ちます。テーブルを操作し、その内容にアクセスするための管理インターフェイスと低レベルAPIを提供します。データモジュールは、テーブルデータを表示するためのビュー統合と、テーブルコンテンツを検索するためのDrupal検索統合を提供します。

0
Anil Sagar