
#include"string.h"
#include<stdlib.h>
#include<conio.h>
struct Data{
char name[3]
char place[7]
char degree[7]
}
void main()
{
FILE *fr
int i
struct Data m
int count = 0
struct Data man[3] = { {"01","200801","2323.5"},{"02","200802","2656.9"},{"03","200803","5652.4"}
}
if((fr = fopen("test.csv","wt+")) == NULL)
{
printf("wrong")
exit(0)
}
for (i = 0i <3++i)
{
fprintf(fr,"%s,%s,%s\n",man[i].name,man[i].place,man[i].degree)////这样输出,用逗号隔开的
}
rewind(fr)
do
{
++count
fgets(m.name,3,fr)
fseek(fr,1L,1)
fgets(m.place,7,fr)
fseek(fr,1L,1)
fgets(m.degree,7,fr)
printf("%s\t%s\t%s\n",m.name,m.place,m.degree)
fseek(fr,2L,1)
}while(count <3)
fclose(fr)
getch()
}
导入 *** 作存在特殊字符情况的处理
Book1.csv
编号,名称,说明1,测试数据1,"测试CSV文件中,有逗号"2,测试数据2,"测试CSV文件中有""双引号"""3,测试数据3,"测试CSV文件中,有逗号和""双引号"""4,测试数据4,普通数据
mysql>CREATE TABLE Test_Book1 (
->id int,
->name VARCHAR(10),
->data VARCHAR(100)
->)
Query OK, 0 rows affected (0.05 sec)
下面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行
下面的 ignore 1 lines是 忽略第一行的标题行。
mysql>LOAD DATA INFILE 'f:/Book1.csv'
->INTO TABLE Test_Book1
->FIELDS TERMINATED BY ','
->OPTIONALLY ENCLOSED BY '"'
->lines terminated by '\r\n'
->ignore 1 lines
->(id, name, data)
Query OK, 4 rows affected (0.00 sec)
Records: 4 Deleted: 0 Skipped: 0 Warnings: 0
mysql>select * from test_book1
+------+-----------+--------------------------------+
| id | name | data |
+------+-----------+--------------------------------+
| 1 | 测试数据1 | 测试CSV文件中,有逗号 |
| 2 | 测试数据2 | 测试CSV文件中有"双引号" |
| 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |
| 4 | 测试数据4 | 普通数据 |
+------+-----------+--------------------------------+
4 rows in set (0.00 sec)
1、CSV 文件 不支持 EXCEL中 的多个工作表的模式。 一个 CVS 文件只能转换成 EXCEL 一个工作表。2、逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)