我认为这就是你在ACE 工作之后的样子
不幸的是,您不能从连接字符串中设置 ImportMixedTypes 或 TypeGuessRows,因为这些设置是在注册表中定义的。对于ACE OleDb 驱动程序,它们存储在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel
在注册表中。因此,您可以简化连接字符串以摆脱其中一些扩展属性。
在注册表中设置TypeGuessRows
为 0 和ImportMixedTypes
Text 后,您应该会得到您期望的行为。
或者您可以使用Microsoft.Office.Interop.Excel
来读取文件。示例代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace ExcelTut
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:/C.xlsx");
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
for (int i = 1; i <= rowCount; i++)
{
for (int j = 1; j <= colCount; j++)
{
MessageBox.Show(xlRange.Cells[i, j].Value2.ToString());
}
}
}
}
}
通过互操作从读取的 excel 文件中获取的代码