我正在使用下面的代码从Excel工作表中读取数据并将数据添加到数据表中但是当读取文件并检查数据表中的数据时,一些数据丢失了......我一直在寻找在此,并不知道为什么会这样。
excelConnectionString =
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
" ;Extended Properties=Excel 12.0";
try
{
// Create Connection to Excel Workbook
using (OleDbConnection connection =
new OleDbConnection(excelConnectionString))
{
connection.Open();
System.Data.DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string[] excelSheet = new String[dt.Rows.Count];
int sheet = 0;
foreach (DataRow row in dt.Rows)
{
excelSheet[sheet] = row["Table_Name"].ToString();
sheet++;
}
for (int i = 0; i < excelSheet.Length; i++)
{
OleDbCommand command = new OleDbCommand
("Select * FROM [" + excelSheet[i] + "]", connection);
adapter.SelectCommand = command;
adapter.Fill(dt);
dataGridView1.DataSource = dt;
}
答案 0 :(得分:1)
答案 1 :(得分:0)
使用OledbConnection
读取Excel文件,您将遇到一个问题,即每列的字符数限制为255.
您可以尝试添加“IMEX = 1;”到你的连接字符串的末尾,但我不确定这将解决你的问题。
答案 2 :(得分:0)
如果您使用OleDbConnection
,则只能读取255列。我遇到了大问题而不得不改变方法。
这似乎是一个古老且众所周知的问题,暂时无法解决。