C# 链接Excel 获取表单
目标平台改为x64
sql = "select * from [Sheet名称$]",
path = "文件路径";
namespace ClassLibrary1
{
public class ReadExcel
{
/// <summary>
/// 连接字符串模板
/// </summary>
private static readonly string ConnStringTemplate = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
public static DataTable GetDataTable(string sql, string path)
{
// 验证文件路径
if (!File.Exists(path))
{
return null;
}
// 验证文件扩展名
string extension = Path.GetExtension(path).ToLower();
if (extension != ".xls" && extension != ".xlsx")
{
return null;
}
// 构建连接字符串
string connString = string.Format(ConnStringTemplate, path);
// 使用 using 语句确保连接和命令对象被正确释放
using (OleDbConnection conn = new OleDbConnection(connString))
{
try
{
conn.Open();
}
catch (Exception ex)
{
Console.WriteLine($"打开数据库连接失败: {ex.Message}");
return null;
}
using (OleDbCommand cmd = new OleDbCommand(sql, conn))
{
try
{
// 创建 DataTable
DataTable dataTable = new DataTable();
// 使用 DataAdapter 填充 DataTable
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
{
adapter.Fill(dataTable);
}
return dataTable;
}
catch (Exception ex)
{
Console.WriteLine($"执行SQL查询失败: {ex.Message}");
return null;
}
}
}
}
}
}