Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未从excel文件读取所有数据_C#_Excel_Ole - Fatal编程技术网

C# 未从excel文件读取所有数据

C# 未从excel文件读取所有数据,c#,excel,ole,C#,Excel,Ole,我使用下面的代码从excel工作表中读取数据并将数据添加到数据表中,但在读取文件并检查数据表中的数据时,某些数据丢失。。我一直在看这个,不知道为什么会这样 excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + " ;Extended Properties=Excel 12.0";

我使用下面的代码从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;
                    }
excelConnectionString=
“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+fileName+
“扩展属性=Excel 12.0”;
尝试
{
//创建到Excel工作簿的连接
使用(OLEDB连接)=
新OLEDB连接(excelConnectionString))
{
connection.Open();
System.Data.DataTable dt=connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
字符串[]excelSheet=新字符串[dt.Rows.Count];
int-sheet=0;
foreach(数据行中的数据行)
{
excelSheet[sheet]=行[“表名称”]。ToString();
sheet++;
}
for(int i=0;i
使用
OledbConnection
读取Excel文件时,您将遇到一个问题,即每列的字符限制为255


您可以尝试将“IMEX=1;”添加到连接字符串的末尾,但我不确定这是否能解决您的问题。

没有人可以重复您的问题并找出某些问题。但您可以在此处找到类似的问题


如果使用
OleDbConnection
您将有只能读取255列的限制。我在大张纸上遇到了这个问题,不得不改变方法

链接到有关该问题的讨论:


这似乎是一个古老而已知的问题,暂时无法解决。

您是在谈论列中的数据吗?是否有任何列中的字符超过255个?