php 导入数据到excel

class CsvFieldDump  {

 var $headers;
 var $fieldnum;
 function CsvFieldDump($infile){
  if(empty($infile)){
   die("You must specify a csv file to readn");
  }
  if(!file_exists($infile)){
   die("$infile doesn't exist!n");
  }
  $this->infile  = $infile;
  $this->fieldnum = $field;
  $this->createFile=0;
  return(true);
 }

 var $headers=array();
 function dump_headers($dumptoscreen=1){
  $this->fd=fopen($this->infile, "r") or die("Couldn't open csv file $file");
  $count=0;
  while($data = fgetcsv($this->fd, 1000, ",") ){
   if(!$count){
    if($dumptoscreen){
     print_r($data);
    }
    $this->headers=$data;
   }
   $count=1; 
  }
  return($this->headers);
 }

 function dump_column($num){

  $this->fieldnum = $num;
  $this->fd=fopen($this->infile, "r") or die("Couldn't open csv file $file");
  $count=0;
  while($data = fgetcsv($this->fd, 1000, ",")){
   $array=array();
   if(is_array($this->fieldnum)){
    foreach($this->fieldnum as $num){
     $array[]=$data[$num];
    }
   }else{
    $array = array($data[$this->fieldnum]);
   }
   $this->write_line($array);
  }
 }

 var $colname;
 var $headers_flip;
 function dump_column_by_name($name){
  if(!isset($name)){
   die("No field name specified");
  }
  $this->colname=$name;
  $this->dump_headers(0);
  $this->headers_flip = array_flip($this->headers);
  if(is_array($this->colname)){
   foreach($this->colname as $n){
    $array[] = $this->headers_flip[$n];
   }
  }else{
   $array[] = $this->headers_flip[$this->colname];
  }

  $this->dump_column($array);
 }

 function write_line($data){
  $string="";
  $num=count($data);
  for($x=0;$x<$num;$x++){
   $string.=$data[$x];
   if($x<$num-1){
    $string.=",";
   }
  }
  echo $string."n";
 }

}

 

/////////////////////// make it think its a c program :)
if(isset($argv[1])){

 $filename = $argv[count($argv)-1];

 if($argv[1] == "-h"){
  render_help();
  die();
 }else{
  $b=new CsvFieldDump($filename);
 }

 $x=0;
 foreach($argv as $opt){
  switch($opt) {
   case "df":
   case "-df" :
    $number = $argv[$x+1];
    if(strstr($number, ",")){
     $numbers = explode(",",$number);
    }else{
     $numbers = $number;
    }
    $b->dump_column($numbers);
   break;

   case "-dn":
    $number = $argv[$x+1];
    if(strstr($number, ",")){
     $names = explode(",",$number);
    }else{
     $names = $number;
    }
    $b->dump_column_by_name($names);
   break;

   case "--help":
   case "-h" :
    render_help(); 
   break;

   case "-dh" :
    $b->dump_headers();
   break;
  }
  $x++;
 }

}
function render_help(){
echo "CsvFieldDump version 0.0.0.1 by mark fate_amendable_to_change@yahoo.com
-df <n>    = dumps field(s) number n - also (accepts comma delimited list for multiple field numbers eg: -df 1,2,3)
-dn <N>    = dumps field(s) named N (accepts comma delimited list for multiple names eg: -dn Code,Desc)
-dh        = dumps csv headers
";
}

?>

时间: 2024-10-30 22:14:40

php 导入数据到excel的相关文章

用QueryTable向excel批量导入数据

前面写过两篇excel操作的文章,有朋友质疑大批量数据下的性能问题,这个时候最好用批量复制的 方法,可以用excel的QueryTable来直接查询数据库,但是必须引用com组件. 参考代码: using System;using System.Collections.Generic;using System.Text;using System.Reflection;using Excel = Microsoft.Office.Interop.Excel;namespace ConsoleApp

导入-Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死!

问题描述 Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死! 项目是进行单机版和网络版的数据对比,需要将单机版导出来的数据(excel表格,固定格式)导入网络版进行对比,网络版在导入数据时能提示选择导入的excel文件,不用在Java代码中将要读取数据的excel表格的目录写死.谢谢您的帮助! 解决方案 JAVA读取EXCEL用的比较多的是POI类库,参考Java对Excel(0307)进行上传.解析.验证.入库,或者你搜索一下java poi,有很多文章的

从VB中的Datagride中向excel导入数据

datagrid|excel|导入数据   程序需要我在网上找了很久才找到刚刚把程序写好并加写了注释希望能帮助大家再写程序前先引用microsoft excel 11.0 object Library我看到的文章是10.0的我这是office2003是11.0只要安了excel就有这个引用~Private Sub cmdsave_Click()MsgBox "文件保存为: D:\电网配电线路管理信息系统\信息查询结果\事故信息查询结果.xls"    Dim i As Integer 

从SharePoint列表往Excel导入数据

可以从 Microsoft Windows SharePoint Services 3.0 或 Windows SharePoint Services 2.0 网站中的列表导入数据并对这些数据进行分析.例如,可以从 SharePoint 网站导入一个零部件库存清单,然后在 Microsoft Office Excel 2007 中创建一个数据透视表 (数据透视图报表:提供交互式数据分析的图表,与数据透视表类似.可以更改数据的视图,查看不同级别的明细数据,或通过拖动字段和显示或隐藏字段中的项来重新

怎样从MS Office Excel 2007导入数据到SQL Server 2005

SSIS开发人员经常会需要从一个Microsoft Office Excel 2007电子数据表导入数据.这篇文章提供了一个关于怎样从一个Microsoft Office Excel 2007电子数据表导入数据到一个SQL Server 2005数据库的逐步指导. 第一步是点击开始并选择运行并输入CMD然后在命令提示符里输入DTSWIZARD.SQL Server 导入和导出向导的欢迎界面将显示出来,如下图所示: 当你点击下一步按钮时,它将进入选择数据源向导界面.用户应该选择数据源为Micros

C#实现Excel导入数据到SQL的功能中关于小数的问题

问题描述 近日,要在c#中实现Excel导入数据到sql数据库的功能,已实现可以导入,只是其中的小数,总是会减少,比如Excel中数据是2.010,导入到数据库中之后就会变成2.009这样,请问有谁知道是什么原因吗?在导入之前已经把Excel中的这列小数设置成文本格式了.导入之前的数据:导入之后的数据:导入数据的功能是这样实现的,先把Excel中的数据读取到DataTable中,然后用sbc的插入到数据库中代码分别如下:///<summary>///Excel导入数据源///</summ

java poi的excel导入数据读取

问题描述 java poi的excel导入数据读取 在使用poi时候,如何将获取的row转换成列,,现在excel模板格式就是类似这种,以行作为一个对象的第一个字段,列作为一个对象. 就比如 第一行作为对象第一个属性值的内容,第二行作为属性第二个属性值的内容,以此类推. 解决方案 你是不会读取数据吗?先循环所有的工作表,再循环所有的行,最后循环这一行里面所有的列,取出来不就完了么 解决方案二: Microsoft的Office系列产品拥有大 量的用户,Word.Excel也成为办公文件的首选.在

php mysql-在php中从Excel表中向mysql数据库导入数据

问题描述 在php中从Excel表中向mysql数据库导入数据 请问:如何实现在php中从Excel表中向mysql数据库导入数据,要注意那些东西? 解决方案 http://www.jb51.net/article/26921.htm 解决方案二: http://blog.csdn.net/china_skag/article/details/7098473 解决方案三: http://blog.csdn.net/jiaocaigeng/article/details/9470571 解决方案四

java实现excel导入数据的工具类_java

导入Excel数据的工具类,调用也就几行代码,很简单的. 复制代码 代码如下: import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import org.apache.commons.beanutils.BeanUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java.io.IOExc