0
を使用したデータの数をエクセル:私はExcelにデータ未満の65000行を記述しようとすると、それが動作します。私は以上65000行を記述しようとする。しかし、エラーが発生します。エラーは、私がOLEDBに</p> <p>問題を使用してExcelにデータを挿入して、問題を取得OLEDB
スプレッドシートがいっぱいになっている
私は一度に日付を書くには限界があると思います...
I以上1,000,000書き込むためのデータの行...
ラインは6列で構成され、appoximately 100文字をここで
は私のソースタラされていe。private static OleDbConnection CreateConnection(string ExcelPath)
{
OleDbConnectionStringBuilder ConnectionBuilder = new OleDbConnectionStringBuilder();
ConnectionBuilder.Provider = "Microsoft.Jet.OLEDB.4.0";
ConnectionBuilder.DataSource = ExcelPath;
ConnectionBuilder.Add("Extended Properties", "Excel 8.0");
return new OleDbConnection(ConnectionBuilder.ToString());
}
using (OleDbConnection Connection = CreateConnection(@"C:\userinfo.xls"))
{
Connection.Open();
OleDbCommand tempCmd = Connection.CreateCommand();
tempCmd.CommandText = CreateTableQury(dt, "Sheet1");
tempCmd.ExecuteNonQuery();
tempCmd.CommandText = CreateInsertQuery(dt, tempCmd.Parameters, "Sheet1");
int extime = 1;
foreach (DataRow Row in dt.Rows)
{
for (int t = 0; t < tempCmd.Parameters.Count; t++)
{
tempCmd.Parameters[t].Value = Row[t];
}
tempCmd.ExecuteScalar();
extime++;
if ((extime % 1000) == 0)
{
Console.WriteLine("EXCEL " + extime + " Line/time:" + sw.Elapsed.ToString());
}
}
Connection.Close();
}
public static string CreateTableQury(DataTable Table, string SheetName)
{
string Query = "CREATE TABLE [" + SheetName + "] (";
for (int i = 0; i < Table.Columns.Count; i++)
{
Query += Table.Columns[i].ColumnName + " text";
if (i < Table.Columns.Count - 1) Query += ", ";
else Query += ")";
}
return Query;
}
public static string CreateInsertQuery(DataTable Table, OleDbParameterCollection Parameters, string SheetName)
{
string Query = @"INSERT INTO [" + SheetName + "] VALUES (";
for (int i = 0; i < Table.Columns.Count; i++)
{
Query += "@Param" + i.ToString();
if (i < Table.Columns.Count - 1) Query += ", ";
else Query += ")";
OleDbParameter Parameter = new OleDbParameter("@Param" + i.ToString(), DbType.String);
Parameters.Add(Parameter);
}
return Query;
}
Excelをatleast 2007バージョンにアップグレードするか、列をまたいで展開する必要があります – V4Vendetta
それでは、ファイルが2007年用ではないと思われます。userinfo. ** xls ** ' – V4Vendetta
また、Microsoft .Jet.OLEDB'でも – V4Vendetta