2

言語: C#、システム: Windows7、Excel 2007

一部のデータから .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 に変換できますが、自動にしたいのです。

何か案は?

前もって感謝します

4

3 に答える 3

5

これは、CREATE TABLE SQL 構文を使用して 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();
}

}

于 2010-08-25T22:35:17.480 に答える
0

VFPから直接、簡単に...

use YourTable
Copy To SomeFile type XLS
于 2010-08-25T12:21:17.797 に答える
-1
        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);
于 2010-08-25T12:41:42.570 に答える