一个读写csv文件的C#类
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-14 21:31
CSV(Comma-Separated Values )文件即用逗号分隔的文本文件。
下面是用C#写的一个简单的读写CSV文件的类。
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace CSVDemo
{
/// <summary>
/// CSVUtil is a helper class handling csv files.
/// </summary>
public class CSVUtil
{
private CSVUtil()
{
}
//write a new file, existed file will be overwritten
public static void WriteCSV(string filePathName,List<String[]>ls)
{
WriteCSV(filePathName,false,ls);
}
//write a file, existed file will be overwritten if append = false
public static void WriteCSV(string filePathName,bool append, List<String[]> ls)
{
StreamWriter fileWriter=new StreamWriter(filePathName,append,Encoding.Default);
foreach(String[] strArr in ls)
{
fileWriter.WriteLine(String.Join (“,",strArr) );
}
fileWriter.Flush();
fileWriter.Close();
}
public static List<String[]> ReadCSV(string filePathName)
{
List<String[]> ls = new List<String[]>();
StreamReader fileReader=new StreamReader(filePathName);
string strLine="";
while (strLine != null)
{
strLine = fileReader.ReadLine();
if (strLine != null && strLine.Length>0)
{
ls.Add(strLine.Split(','));
//Debug.WriteLine(strLine);
}
}
fileReader.Close();
return ls;
}
}
}
如何使用这个类可以看源代码。
CSVDemo.rar (12.76 KB , 下载:834次)
源代码演示了:
1.listview控件,openFileDialog控件的简单运用;
2.autoseed的Random类的使用;
3.保存CSV文件;
4.读取CSV文件;
5.简单的分层思想,视图-listview,业务数据-data,永久数据-csv file
本代码不涉及:
1.listview控件的复杂控制
2.CSV文件内容合法性检验,例如每行是否有相同的列。
Update
2007-12-14 一个不简单的处理csv文件的C#类(库)
http://www.codeproject.com/KB/database/CsvReader.aspx
我没有用过,连下载都没有,因为我用不着,也许某一天会有用。
2008-1-14 按游客的指点修改了WriteCSV,精简了代码,Demo的代码也已更新。
下面是用C#写的一个简单的读写CSV文件的类。
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace CSVDemo
{
/// <summary>
/// CSVUtil is a helper class handling csv files.
/// </summary>
public class CSVUtil
{
private CSVUtil()
{
}
//write a new file, existed file will be overwritten
public static void WriteCSV(string filePathName,List<String[]>ls)
{
WriteCSV(filePathName,false,ls);
}
//write a file, existed file will be overwritten if append = false
public static void WriteCSV(string filePathName,bool append, List<String[]> ls)
{
StreamWriter fileWriter=new StreamWriter(filePathName,append,Encoding.Default);
foreach(String[] strArr in ls)
{
fileWriter.WriteLine(String.Join (“,",strArr) );
}
fileWriter.Flush();
fileWriter.Close();
}
public static List<String[]> ReadCSV(string filePathName)
{
List<String[]> ls = new List<String[]>();
StreamReader fileReader=new StreamReader(filePathName);
string strLine="";
while (strLine != null)
{
strLine = fileReader.ReadLine();
if (strLine != null && strLine.Length>0)
{
ls.Add(strLine.Split(','));
//Debug.WriteLine(strLine);
}
}
fileReader.Close();
return ls;
}
}
}
如何使用这个类可以看源代码。
CSVDemo.rar (12.76 KB , 下载:834次)源代码演示了:
1.listview控件,openFileDialog控件的简单运用;
2.autoseed的Random类的使用;
3.保存CSV文件;
4.读取CSV文件;
5.简单的分层思想,视图-listview,业务数据-data,永久数据-csv file
本代码不涉及:
1.listview控件的复杂控制
2.CSV文件内容合法性检验,例如每行是否有相同的列。
Update
2007-12-14 一个不简单的处理csv文件的C#类(库)
http://www.codeproject.com/KB/database/CsvReader.aspx
我没有用过,连下载都没有,因为我用不着,也许某一天会有用。
2008-1-14 按游客的指点修改了WriteCSV,精简了代码,Demo的代码也已更新。
标签: CSV文件
IIS重启后WEB站点不能自动重启故障解决一例
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-10 14:24
C#操作MySQL数据库的简单例子
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-05 22:10
本示例演示了用C#操作MySQL的方法,提供了三个可重用的类MySqlDBUtil,MySqlPageUtil,Page。
本示例由 C#操作Access数据库的简单例子(http://www.albertsong.com/read-56.html)修改而来。
1.首先下载MySQL数据库的.NET驱动
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
将bin目录里的MySql.Data.dll文件复制到工程目录,并且将dll的引用加入到项目中,这样就可以通过相关的类来操作MySQL数据库了。
using MySql.Data.MySqlClient;
using System.Data;
连接字符串:String connectionString = "server=127.0.0.1;user id=root; password=as; database=albertsong; pooling=false;charset=utf8";
连接字符串中各个项目的意思是很明确的,需要注意的是charset应该设置成和数据库表的charset一致,否则可能出现中文乱码。
然后将整个项目中的OleDb用MySql替换,这样基本上就可以了。不同的是带参数的sql语句,
Access中是
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?,?,?,?,?)";
parameters[0]=new MySqlParameter("@name",MySqlDbType.VarChar,100);
MySql中应改为
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?name,?quantity,?price,?sale_date,?checked_flag)";
parameters[0]=new MySqlParameter("?name",MySqlDbType.VarChar,100);
2.取得MySQL自增标识字段在插入数据后的id值
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
用cmd.CommandText = @"select LAST_INSERT_ID()";结果一样,两者的区别没有研究。
3.分页查询
使用Limit子句来处理分页查询,这样相对于Access的分页查询,代码大量简化,效率也会提高。
代码这里下载
MySqlDBUtilDemo.rar (198.41 KB , 下载:799次)
本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。
运行前先利用bin\Release下的sql语句文件建表并修改MySqlDBUtil中的连接字符串。
本例程演示了:
1.MySQL数据库的插入,更新,修改,查询;
2.带参数的sql语句的使用,而不是拼SQL;
3.使用Limit子句的分页查询;
4.用事务同时执行多个SQL语句;
5.在插入数据的同时返回最新的ID值;
6.整型,实型,字符串,日期型,布尔型五种数据类型的操作;
7.使用正则表达式来验证整数和实数;
8.listview用来显示数据的一些基本用法。
本示例不包括:
1.完善的分页封装,只提供了分页的简单包装。
2.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。
3.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。
后记:
由于API接口一致,将操作Access数据库的类改为操作MySQL数据库的类很容易,利用这两个示例,可以学习基本的数据库操作,也可以用来做一些简单的应用程序了。实际的项目中有成熟的开源项目可用,如iBATIS.NET和NHibernate,这些项目都建筑在这些基本的API之上,先学习我写的这两个小例子也有助于学习理解这些项目。
本示例由 C#操作Access数据库的简单例子(http://www.albertsong.com/read-56.html)修改而来。
1.首先下载MySQL数据库的.NET驱动
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
将bin目录里的MySql.Data.dll文件复制到工程目录,并且将dll的引用加入到项目中,这样就可以通过相关的类来操作MySQL数据库了。
using MySql.Data.MySqlClient;
using System.Data;
连接字符串:String connectionString = "server=127.0.0.1;user id=root; password=as; database=albertsong; pooling=false;charset=utf8";
连接字符串中各个项目的意思是很明确的,需要注意的是charset应该设置成和数据库表的charset一致,否则可能出现中文乱码。
然后将整个项目中的OleDb用MySql替换,这样基本上就可以了。不同的是带参数的sql语句,
Access中是
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?,?,?,?,?)";
parameters[0]=new MySqlParameter("@name",MySqlDbType.VarChar,100);
MySql中应改为
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?name,?quantity,?price,?sale_date,?checked_flag)";
parameters[0]=new MySqlParameter("?name",MySqlDbType.VarChar,100);
2.取得MySQL自增标识字段在插入数据后的id值
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
用cmd.CommandText = @"select LAST_INSERT_ID()";结果一样,两者的区别没有研究。
3.分页查询
使用Limit子句来处理分页查询,这样相对于Access的分页查询,代码大量简化,效率也会提高。
代码这里下载
MySqlDBUtilDemo.rar (198.41 KB , 下载:799次)本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。
运行前先利用bin\Release下的sql语句文件建表并修改MySqlDBUtil中的连接字符串。
本例程演示了:
1.MySQL数据库的插入,更新,修改,查询;
2.带参数的sql语句的使用,而不是拼SQL;
3.使用Limit子句的分页查询;
4.用事务同时执行多个SQL语句;
5.在插入数据的同时返回最新的ID值;
6.整型,实型,字符串,日期型,布尔型五种数据类型的操作;
7.使用正则表达式来验证整数和实数;
8.listview用来显示数据的一些基本用法。
本示例不包括:
1.完善的分页封装,只提供了分页的简单包装。
2.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。
3.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。
后记:
由于API接口一致,将操作Access数据库的类改为操作MySQL数据库的类很容易,利用这两个示例,可以学习基本的数据库操作,也可以用来做一些简单的应用程序了。实际的项目中有成熟的开源项目可用,如iBATIS.NET和NHibernate,这些项目都建筑在这些基本的API之上,先学习我写的这两个小例子也有助于学习理解这些项目。
c#操作Access数据库的简单例子
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-04 22:50
本文介绍C#访问操作Access数据库的基础知识,并提供一个相关的例程。
1.通过ADO.NET的OleDb相关类来操作Access
主要知识点如下:
using System.Data.OleDb;
using System.Data;
连接字符串:String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";
建立连接:OleDbConnection connection = new OleDbConnection(connectionString);
使用OleDbCommand类来执行Sql语句:
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
2.取得Access自增标识字段在插入数据后的id值
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
3.执行事务
需要用到OleDbTransaction,关键语句如下:
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand();
OleDbTransaction transaction = null;
cmd.Connection = connection;
connection.Open();
transaction = connection.BeginTransaction();
cmd.Transaction = transaction;
cmd.CommandText=sql1;
cmd.ExecuteNonQuery();
cmd.CommandText=sql2;
cmd.ExecuteNonQuery();
transaction.Commit();
4.执行查询,返回DataSet
OleDbConnection connection = new OleDbConnection(connectionString);
DataSet ds = new DataSet();
connection.Open();
OleDbDataAdapter da = new OleDbDataAdapter(sql, connection);
da.Fill(ds,"ds");
5.分页查询
分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。
以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page
代码这里下载
AccessDBUtilDemo.rar (191.37 KB , 下载:1184次)
本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。
本例程演示了:
1.Access数据库的插入,更新,修改,查询;
2.带参数的sql语句的使用,而不是拼SQL;
3.使用DataReader的分页查询,而不是用嵌套的SQL语句来分页;
4.用事务同时执行多个SQL语句;
5.在插入数据的同时返回最新的ID值;
6.整型,实型,字符串,日期型,布尔型五种数据类型的操作;
7.使用正则表达式来验证整数和实数;
8.listview用来显示数据的一些基本用法。
本示例不包括:
1.高效的分页查询,仅仅是提供了一种分页的方法,但我认为DataReader应该比嵌套的SQL语句快(未测试)。
2.完善的分页封装,只提供了分页的简单包装。
3.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。
4.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。
运行截图

后记:
Access的数据访问操作暂时到此为止,希望这个例子对初学C#和Access的有一点点帮助。
明天将这个例子改成访问MySQL的例程。
1.通过ADO.NET的OleDb相关类来操作Access
主要知识点如下:
using System.Data.OleDb;
using System.Data;
连接字符串:String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";
建立连接:OleDbConnection connection = new OleDbConnection(connectionString);
使用OleDbCommand类来执行Sql语句:
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
2.取得Access自增标识字段在插入数据后的id值
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
3.执行事务
需要用到OleDbTransaction,关键语句如下:
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand();
OleDbTransaction transaction = null;
cmd.Connection = connection;
connection.Open();
transaction = connection.BeginTransaction();
cmd.Transaction = transaction;
cmd.CommandText=sql1;
cmd.ExecuteNonQuery();
cmd.CommandText=sql2;
cmd.ExecuteNonQuery();
transaction.Commit();
4.执行查询,返回DataSet
OleDbConnection connection = new OleDbConnection(connectionString);
DataSet ds = new DataSet();
connection.Open();
OleDbDataAdapter da = new OleDbDataAdapter(sql, connection);
da.Fill(ds,"ds");
5.分页查询
分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。
以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page
代码这里下载
AccessDBUtilDemo.rar (191.37 KB , 下载:1184次)本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。
本例程演示了:
1.Access数据库的插入,更新,修改,查询;
2.带参数的sql语句的使用,而不是拼SQL;
3.使用DataReader的分页查询,而不是用嵌套的SQL语句来分页;
4.用事务同时执行多个SQL语句;
5.在插入数据的同时返回最新的ID值;
6.整型,实型,字符串,日期型,布尔型五种数据类型的操作;
7.使用正则表达式来验证整数和实数;
8.listview用来显示数据的一些基本用法。
本示例不包括:
1.高效的分页查询,仅仅是提供了一种分页的方法,但我认为DataReader应该比嵌套的SQL语句快(未测试)。
2.完善的分页封装,只提供了分页的简单包装。
3.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。
4.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。
运行截图

后记:
Access的数据访问操作暂时到此为止,希望这个例子对初学C#和Access的有一点点帮助。
明天将这个例子改成访问MySQL的例程。
Windows下开源缺陷跟踪系统mantis安装指南 V1.1.0rc3
作者: 王者之剑(http://www.albertsong.com/) 日期: 2007-12-16 23:54
C#写的unicode编码转文字的工具
作者: 王者之剑(http://www.albertsong.com/) 日期: 2007-12-14 19:18
1.unicode 编码转汉字(U2C)
unicode 编\u7801\u8F6C汉字--->unicode 编码转汉字
2.汉字转unicode编码(C2U)
汉字转unicode编码--->
\u6C49\u5B57\u8F6C\u0075\u006E\u0069\u0063\u006F\u0064\u0065\u7F16\u7801
隐藏功能:
试一下输入
[[J]]
name = name
age = 年龄
看看会转成什么?
这个工具是为查看java程序中可能出现的如1所示的unicode代码而写的。
下载在这里。
U2C.rar (4.28 KB , 下载:453次)
源代码已经找不到了,想看代码的可以反编译。
超级强大的.net反编译工具在这里
http://www.aisto.com/roeder/dotnet/
就是最上面那个。
unicode 编\u7801\u8F6C汉字--->unicode 编码转汉字
2.汉字转unicode编码(C2U)
汉字转unicode编码--->
\u6C49\u5B57\u8F6C\u0075\u006E\u0069\u0063\u006F\u0064\u0065\u7F16\u7801
隐藏功能:
试一下输入
[[J]]
name = name
age = 年龄
看看会转成什么?
这个工具是为查看java程序中可能出现的如1所示的unicode代码而写的。
下载在这里。
U2C.rar (4.28 KB , 下载:453次)源代码已经找不到了,想看代码的可以反编译。
超级强大的.net反编译工具在这里
http://www.aisto.com/roeder/dotnet/
就是最上面那个。
标签: C#
C#连接MySQL数据库的方法
作者: 王者之剑(http://www.albertsong.com/) 日期: 2007-12-13 20:45
其实很简单,但是我在网上找的时候却找不到有用的信息,奇怪。
到这里下载驱动
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
其它相关链接
http://www.mysql.com/products/connector/net/
http://dev.mysql.com/downloads/connector/net/1.0.html
http://dev.mysql.com/downloads/connector/net/5.0.html
下载的包里面有使用的例子。
需要具备的知识:知道怎样添加一个dll的reference到现有的项目中。
刚开始是想找通过OleDb连接mysql的,后来没有找到合适的。
微软的接口规划得很好,只要把OleDb换成MySql,以前的程序基本不用改变。
建议放弃使用OleDb来访问MySql的做法,因为据说效率不高,直接使用上面的mysql-connector-net。
到这里下载驱动
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
其它相关链接
http://www.mysql.com/products/connector/net/
http://dev.mysql.com/downloads/connector/net/1.0.html
http://dev.mysql.com/downloads/connector/net/5.0.html
下载的包里面有使用的例子。
需要具备的知识:知道怎样添加一个dll的reference到现有的项目中。
刚开始是想找通过OleDb连接mysql的,后来没有找到合适的。
微软的接口规划得很好,只要把OleDb换成MySql,以前的程序基本不用改变。
建议放弃使用OleDb来访问MySql的做法,因为据说效率不高,直接使用上面的mysql-connector-net。
一个将Excel中的数据导入MySQL的简单方法
作者: 王者之剑(http://www.albertsong.com/) 日期: 2007-12-12 22:45
这个方法最简单但不是傻瓜式的方法,需要你对Excel和MySQL都有一点点了解。
当然,我在最后提供了一个作为例子的Excel文件,但仍然需要你会写MySQL的INSERT语句,这样才能调试可能出现的错误。
1.在需要导入的数据最后一列,写入一个Excel公式(例子中是“SQL”下面的单元格,“SQL”是不必要的,仅仅是为了看起来方便)。
=CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",RC[-3],"','",RC[-2],"','",RC[-1],"');")
这样就会生成insert语句,正如你在例子Excel文件中看到的(当你单击SQL下面的单元格时,可以看到公式)。
这个实际上是使用了Excel的CONCATENATE字符串连接函数,将数据生成你需要的SQL语句。RC[-2]是从最后一列(不包括该列)往前数的第二列。
2.将"SQL"下面单元格的公式复制到该列的其它单元格,这样可以看到生成了所需要的所有SQL语句。
3.将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“SQL”)。
4.能够运行sql文件的工具有很多,运行这个文件就可以了。如果没有工具,参考 在windows下批量执行mysql脚本(http://www.albertsong.com/read-21.html)。
使用上面的方法,你需要知道什么样的insert语句对于mysql来说是正确的。
最常见的是日期的格式,如果不转换成字符串,用上面的方法会生成一个整数,这样插入mysql后就不对了。
因此上面的公式改成
=CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",TEXT(RC[-3],"yyyy-mm-dd hh:mm:ss"),"','",RC[-2],"','",RC[-1],"');")
这里用到了TEXT函数来将日期格式化成mysql能接受的日期字符串。
具体请参考例子。
Excel2Mysql.rar (4.56 KB , 下载:1407次)
文件说明如下:
doc.txt--本文
SqlGen.xls--Excel例子文件
create.sql--建表语句
insert.sql--生成的insert语句
function.txt--需要在Excel中使用的函数
写了这么多,实际上就一句话:使用Excel的CONCATENATE函数生成sql语句并执行。
如果懂一点儿VBA可以直接生成insert.sql文件,又扯远了。
其它参考链接:
Excel函数应用之文本/日期/时间函数
http://www0.ccidnet.com/school/office//2001/06/05/70_4379.html
当然,我在最后提供了一个作为例子的Excel文件,但仍然需要你会写MySQL的INSERT语句,这样才能调试可能出现的错误。
1.在需要导入的数据最后一列,写入一个Excel公式(例子中是“SQL”下面的单元格,“SQL”是不必要的,仅仅是为了看起来方便)。
=CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",RC[-3],"','",RC[-2],"','",RC[-1],"');")
这样就会生成insert语句,正如你在例子Excel文件中看到的(当你单击SQL下面的单元格时,可以看到公式)。
这个实际上是使用了Excel的CONCATENATE字符串连接函数,将数据生成你需要的SQL语句。RC[-2]是从最后一列(不包括该列)往前数的第二列。
2.将"SQL"下面单元格的公式复制到该列的其它单元格,这样可以看到生成了所需要的所有SQL语句。
3.将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“SQL”)。
4.能够运行sql文件的工具有很多,运行这个文件就可以了。如果没有工具,参考 在windows下批量执行mysql脚本(http://www.albertsong.com/read-21.html)。
使用上面的方法,你需要知道什么样的insert语句对于mysql来说是正确的。
最常见的是日期的格式,如果不转换成字符串,用上面的方法会生成一个整数,这样插入mysql后就不对了。
因此上面的公式改成
=CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",TEXT(RC[-3],"yyyy-mm-dd hh:mm:ss"),"','",RC[-2],"','",RC[-1],"');")
这里用到了TEXT函数来将日期格式化成mysql能接受的日期字符串。
具体请参考例子。
Excel2Mysql.rar (4.56 KB , 下载:1407次)文件说明如下:
doc.txt--本文
SqlGen.xls--Excel例子文件
create.sql--建表语句
insert.sql--生成的insert语句
function.txt--需要在Excel中使用的函数
写了这么多,实际上就一句话:使用Excel的CONCATENATE函数生成sql语句并执行。
如果懂一点儿VBA可以直接生成insert.sql文件,又扯远了。
其它参考链接:
Excel函数应用之文本/日期/时间函数
http://www0.ccidnet.com/school/office//2001/06/05/70_4379.html
标签: MySQL










