C# Excel Connection
本文关键字:Connection Excel | 更新日期: 2023-09-27 18:31:53
你好,我需要连接到 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 Excel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:'farm.xls';Extended Properties=Excel 8.0;");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "Update [Sheet1$] set name = 'FARM GDL' where COMERCIO like 'FARM GUADALAJARA'";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MyConnection.Close();
MessageBox.Show("Success");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}
但是有些东西不起作用,当我运行时它会打开连接
我能行???拜托,谢谢!
在上面的连接字符串中发现了一些错误:
按以下方式更改连接字符串:
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:''farm.xls';'Extended Properties=Excel 8.0;HDR=YES'");
- '' 字符具有特殊含义,需要在路径字符串中加倍或以 @ 为前缀的整个字符串
- 如果您的 Excel 文件的第一行有一个标题,您应该添加到连接字符串 HDR=YES;
- 扩展属性应括在单引号中
如果您的 Excel 文件的第一行没有标题,则整个查询会更改,因为您不能将name
和COMERCIO
用作列名。相反,您需要使用字母 F 后跟列号(如set F1 = 'FARM GDL' where F2 like '...'
)