在Excel中可读的C#代码中创build.DBF(VFP或不)

语言:C#,系统:Windows7,Excel 2007

我想从一些数据创build一个.DBF,我想从Excel 2007中打开它。它可以是dBase或foxpro。 我目前在做FoxPro9(顺便说下,这个代码是从互联网上):

OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\Temp\\;"); con.Open(); OleDbCommand cmd1 = new OleDbCommand("Create Table TestDBF (Field1 I, Field2 C(10))", con); OleDbCommand cmd2 = new OleDbCommand("Insert Into TestDBF Values (1, 'Hello')", con); OleDbCommand cmd3 = new OleDbCommand("Insert Into TestDBF Values (2, 'World')", con); cmd1.ExecuteNonQuery(); cmd2.ExecuteNonQuery(); cmd3.ExecuteNonQuery(); con.Close(); 

这生成的文件,我可以在DbfViewer中打开,但是,我不能在Excel 2007中打开它,也不能在我有一些应用程序中使用。 我可以使用DbfViwer手动将FoxPro .dbf转换为dbaseIII dbf,但我希望它是自动的。

有任何想法吗?

提前致谢

这里有一个小小的控制台应用程序,它将使用CREATE TABLE SQL语法创build一个DBF,然后将其复制到以前版本的可以在Excel中打开的FoxPro DBF文件格式。

 static void Main(string[] args) { Console.WriteLine("Starting program execution..."); string connectionString = @"Provider=VFPOLEDB.1;Data Source=C:\YourDirectory\"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { using (OleDbCommand scriptCommand = connection.CreateCommand()) { connection.Open(); string vfpScript = @"Create Table TestDBF (Field1 I, Field2 C(10)) USE TestDBF COPY TO OpensWithExcel TYPE Fox2x USE"; scriptCommand.CommandType = CommandType.StoredProcedure; scriptCommand.CommandText = "ExecScript"; scriptCommand.Parameters.Add("myScript", OleDbType.Char).Value = vfpScript; scriptCommand.ExecuteNonQuery(); } } Console.WriteLine("End program execution..."); Console.WriteLine("Press any key to continue"); Console.ReadLine(); } 

}

直接从VFP,它很容易…

 use YourTable Copy To SomeFile type XLS 
  OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\Temp\\;"); con.Open(); OleDbCommand cmd1 = new OleDbCommand("Create Table TestDBF (Field1 I, Field2 C(10))", con); OleDbCommand cmd2 = new OleDbCommand("Insert Into TestDBF Values (1, 'Hello')", con); OleDbCommand cmd3 = new OleDbCommand("Insert Into TestDBF Values (2, 'World')", con);