C#Excel Interop:无法从Excel中读取所有数据

我从xlsx文件读取date时遇到了一些问题,我的意思是它不读取单元格中的所有信息,例如我在单元格中有这样的信息:

"4876112","3456151712","345627712","3125HPC21017500011","34131HPC210349014112","35134HPC210273008212" 

当我检查看DataTable时,我只能在行中看到这些信息

 "4876112","3456151712","345627712", 

这是我的代码:

 Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = excelApp.Workbooks.Open(input, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); string sheetname = ""; foreach (Microsoft.Office.Interop.Excel.Worksheet sheet in workbook.Sheets) { sheetname = sheet.Name; break; } string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", input); string query = String.Format("select * from [{0}$]", sheetname); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString); DataSet ds = new DataSet(); dataAdapter.Fill(ds); tabela = ds.Tables[0]; 

我input和格式的Excel的单元格文本,工作正常。 我可以编程方式将所有单元格格式更改为文本。 谢谢!

如果您希望工作表中的所有单元格都以文本格式进行格式化,您可以简单地执行下列操作:

 sheet.Cells.NumberFormat = "@"; 

这是如何使用C#访问Excel的一个框架。 使用C#4.0或更新版本会更好,因为它具有更好的COM互操作性。

 using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; using System.Runtime.InteropServices; ... //create objects Excel.Application oXL; Excel._Workbook oWB; Excel._Worksheet oSheet; oXL = new Excel.Application(); oXL.Visible = false; oWB = oXL.Workbooks.Open(template_file); oSheet = (Excel._Worksheet)oWB.Worksheets[1]; //set cell values oSheet.Cells[1, 1] = "my value here"; //set formatting oSheet.get_Range("A1", "A15").Font.Bold = true; oSheet.get_Range("A1", "A15").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; oSheet.get_Range("A1", "A15").ColumnWidth = 20; //close oXL.ActiveWorkbook.Close(); Marshal.ReleaseComObject(oWB); Marshal.ReleaseComObject(oSheet); Marshal.ReleaseComObject(oXL);