本文目录一览:
- 1、需要处理一批txt文本文件,用Tab分隔符分隔的。但不会用VBA编程,求大神
- 2、php 生成csv文件并提示保存
- 3、给我写一个生成CSV的PHP程序
- 4、PHP操作CSV文件的问题,请教大家!
- 5、php从数据库导出csv格式的Excel表格是,字段本身就有逗号怎么办?说在字段上加双引号,但加在哪??
- 6、PHP如何将用制表符“\t”作分隔符的CSV文件正常导入MYSQL?谢谢~
需要处理一批txt文本文件,用Tab分隔符分隔的。但不会用VBA编程,求大神
有不理解的追问我
Sub txt_saveas_excel()
Dim target_path As String
Dim target_name As String
Dim result_fName As String
target_path = "D:\"
target_name = "123.txt"
'打开目标文件
Workbooks.Open (target_path target_name)
'删掉第五列以后所有列,如果是以前excel版本可能没有16384列,把这个数值改小就可以了
Range(Columns(6), Columns(16384)).Delete shift:=xlLeft
'删掉2-4列,shift:=xlLeft可不要,默认就是向左
Range(Columns(2), Columns(4)).Delete shift:=xlLeft
'目标文件路径下的结果文件夹下,并把txt后缀换成xlsx后缀
result_fName = target_path "结果\" Replace(target_name, ".txt", ".xlsx")
' FileExtStr = ".xlsb": FileFormatNum = 50
' FileExtStr = ".xlsx": FileFormatNum = 51
' FileExtStr = ".xlsm": FileFormatNum = 52
' FileExtStr = ".csv": FileFormatNum = 6
' FileExtStr = ".txt": FileFormatNum = -4158
' FileExtStr = ".prn": FileFormatNum = 36
'文件另存,后缀不同用不同的格式代码
ActiveWorkbook.SaveAs result_fName, 51
'关闭文件,不用再保存
ActiveWorkbook.Close False
End Sub
php 生成csv文件并提示保存
?php
//文件名
$filename="test.csv";
//数据(具体的根据需要做处理,如果是从数据库查询,原理与此类似,只需设置好写入格式和数据即可。
$data="测试csv";
//设置header
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0'); header('Pragma:public');
echo $data;
?
给我写一个生成CSV的PHP程序
看你的php版本了
高版本直接有方法不用自己写
fputcsv($fp, split(',', $line));
这样就可以
第一个参数是你的文件,第二个是分隔符,第三个是每次写入的行
如果php版本较低
可以这么写
if(!file_exists($file))
{
$handle=fopen($file, "a ");
while (!$recordSet-EOF)
{
fwrite($handle,$recordSet-field('对应列名')."," . $recordSet-field('对应列名'));//依此类推
$recordSet-MoveNext();
}
fclose($handle);
}
当然也可以编写一个csv的类(网上看到有人这么做)
其实感觉意义不大
PHP操作CSV文件的问题,请教大家!
csv是以逗号和回车分隔开的 ..
你首先读取文件..
然后用explode分隔回车,
得到一个数组,再对数组内的数据遍历用逗号分隔.会得到具体的数据..
思路就这样....自己多加尝试..理解就可以..
php从数据库导出csv格式的Excel表格是,字段本身就有逗号怎么办?说在字段上加双引号,但加在哪??
$data[$key]=implode("\t",$data[$key]);
你的程序用这个语句把一行数组转换为TAB分割的字符串,这样EXCEL是可以打开的,只是不完全符合CSV的规则(逗号分开),要改为逗号分开,而且每个字段要用引号,该语句修改为下面这样既可:
$data[$key]='"' . implode('","',$data[$key]) . '"';
PHP如何将用制表符“\t”作分隔符的CSV文件正常导入MYSQL?谢谢~
那你就不能用fgetcsv这个方法了
这个方法就是处理csv的
而csv的格式就是要求用","分割
你需要自己逐行分析这个文件才行