C# から OLDEDB を使用してエントリを Excel ファイルに書き込む際に問題が発生しています。基本的に、一部の情報をフォーマットするために Excel テンプレート ファイルを使用したいと考えています。アイデアは、ユーザーがクエリを実行できるということです。結果は Excel ファイルに取り込まれ、ユーザーは引き続き Excel を使用して結果を操作できます。
これを行うには、「raw_data」タブを作成し、OLEDB を使用してテーブルのように書き込みます。ただし、プリセットの計算で問題が発生しています。一部の列はテキストであり、他の列は数値であり、フォーラムはシートが開かれるとすぐにこれらの列を参照する必要があります。
Excel バージョン 2003 C#/.Net 3.5
ここに私の接続文字列があります
string connectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={filename};Extended Properties=""Excel 8.0;HDR=YES;IMEX=0""";
{filename} get は、コードの後半でファイルへのパスに置き換えられます
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
using (DbConnection connection = factory.CreateConnection())
{
connection.ConnectionString = connectString;
using (DbCommand command = connection.CreateCommand())
{
connection.Open();
query = "INSERT INTO [raw_prod$] (correlationid, created, ipaddr, nai, started, delta, csid, bytesin, bytesout, cause, bsid, servopt, svzone) VALUES (\"{correlationid}\", \"{created}\", \"{ipaddr}\", \"{nai}\", \"{started}\", {delta}, \"{csid}\", {bytesin}, {bytesout}, {cause}, \"{bsid}\", \"{servopt}\", \"{zone}\")";
//Replace {} code with actual values skipped
command.CommandText = query;
command.ExecuteNonQuery();
}
}
この実行時にデータが期待どおりに入力されますが、Excel はデータをテキストとして扱うため、sum(c2:c100) などは機能しません。エントリを強調表示して Enter キーを押すと、自動的にテキストになります。テンプレートで列を数字にフォーマットしようとしましたが、ご覧のとおり、SQLの二重引用符を削除しました。
すべての計算が機能するように、これらのエントリをすぐに数値として扱うようにするにはどうすればよいですか?
ありがとう