新手求助 c# Excel WorkBooks.Open 提示不能访问XX.xls

baidu_26319463 2015-03-04 07:36:31
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string oleDBString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + @"/bfs.mdb";
OleDbConnection conn = new OleDbConnection(oleDBString);
String serverPath = openFileDialog1.FileName;
openFileDialog1.InitialDirectory = "serverPath";
conn.Open();
string sql = "select * from jh";
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader sdr = cmd.ExecuteReader(); //执行查询

int j = 1;
while (sdr.Read())
{
string a = sdr.GetString(1);
string b = sdr.GetString(2);

DataSet ds = ExecleDs(serverPath, openFileDialog1.FileName, a.Trim());
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
double w = 0;
int i = 6;
while(i < rowsnum - 4)
{
if (dr[i][0].ToString().Trim() == b.Trim())

{

w = Convert.ToDouble(dr[i][9]);
}

// double c = Convert.ToDouble(dr[i][9]);
// w = w + c;
i = i + 1;
}
rq[j] = dr[1][6].ToString();
jh[j] = a.ToString();
sl[j] = w.ToString();
Thread.Sleep(100);

j = j + 1;

}
}

//输出报表execl部分
string filename = System.Windows.Forms.Application.StartupPath + @"\c.xls";
string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;HDR=Yes'";//这个链接字符串是excel2003的
OleDbConnection oleConn = new OleDbConnection(connstr);

try
{
oleConn.Open();
string sqlStr;
System.Data.DataTable dt = oleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables_Info, null);
objExcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
objExcelWorkBooks = objExcelApp.Workbooks;
objExcelWorkbook = objExcelWorkBooks.Open(filename);
到这里就提示 无法访问
...全文
290 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwlyyah 2016-07-27
  • 打赏
  • 举报
回复
我正遇到了此类问题,请教下如何处理。。
baidu_26319463 2015-03-05
  • 打赏
  • 举报
回复
谢谢了 弄明白了
本拉灯 2015-03-04
  • 打赏
  • 举报
回复
文件被这个OleDbConnection 给独占方式打开了,造成下边的 objExcelWorkBooks.Open(filename); 无法OPEN了。
s8848 2015-03-04
  • 打赏
  • 举报
回复
建议直接使用com接口来看控制,不过也挺麻烦的.
s8848 2015-03-04
  • 打赏
  • 举报
回复
excel的版本库要配合对,我记得office2003好像是11.0 /12.0 的版本,操作excel这个东西说起来容易,总是和环境相关,弄的很不好,有时候换个电脑就不行了,.装个什么软件就把操作的接口给弄没有了.

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧