|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
最刚开始用,这个是我研究的结果,欢迎拍砖。
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
using Microsoft.Office.Tools.Excel;
using Microsoft.VisualStudio.Tools.Applications.Runtime;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using System.Data.OleDb;
namespace ExcelWorkbook1
{
public partial class Sheet1
{
private void Sheet1_Startup(object sender, System.EventArgs e)
{
}
private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}
public void DemoAccess()
{
Excel.Worksheet sh = new Excel.Worksheet();
sh = this.Application.ActiveSheet;
// 设置访问连接并选择字符串。
//如果Access数据库采用默认加密,VBA代码无法打开,ADO.NET却可以
string strCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\data.accdb;Jet OLEDB:Database Password=";
string strSql = "SELECT * FROM test";
// 创建数据集,DataSet功能强大值得钻研
DataSet myDataSet = new DataSet();
OleDbConnection Cnn = null;
Cnn = new OleDbConnection(strCnn);
OleDbCommand myCommand = new OleDbCommand(strSql, Cnn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myCommand);
try
{
//连接Access数据库
Cnn.Open();
//填充数据集
myDataAdapter.Fill(myDataSet);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
finally
{
//关闭数据库连接
Cnn.Close();
}
sh.Cells[1, 2].value2 = myDataSet.Tables[0].Rows.Count;
string[] arr={"1","2","3","4"};
// sh.get_Range("b1").get_Resize(1, 3).get_Value(arr);
Excel.Range rng1 = Application.get_Range("A7", "e7");
rng1.Value2 = arr;
}
//从脱机数据集获取数据表信息
#region VSTO 设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(Sheet1_Startup);
this.Shutdown += new System.EventHandler(Sheet1_Shutdown);
}
#endregion
}
}
|
|