标题:C#中导出excel表格遇到的问题
只看楼主
受不了了
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-8-12
结帖率:0
已结贴  问题点数:20 回复次数:5 
C#中导出excel表格遇到的问题
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;


namespace WindowsFormsApplication1
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {
  // TODO: 这行代码将数据加载到表“personnel_managementDataSet.Jobs”中。您可以根据需要移动或移除它。
  this.jobsTableAdapter.Fill(this.personnel_managementDataSet.Jobs);

  }

  private void button1_Click(object sender, EventArgs e)
  {
  DataGridviewShowToExcel(dataGridView1,true);
  }
  public bool DataGridviewShowToExcel(DataGridView dgv, bool isShowExcle)
  {
  if (dgv.Rows.Count == 0)
  return false;
  //建立Excel对象  
  Excel.Application excel = new Excel.Application();
  //excel.Application.Workbooks.Add(true);
  excel.Application.Workbooks.Add(true);
  excel.Visible = isShowExcle;
  //生成字段名称  
  for (int i = 0; i < dgv.ColumnCount; i++)
  {
  excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
  }
  //填充数据  
  for (int i = 0; i < dgv.RowCount - 1; i++)
  {
  for (int j = 0; j < dgv.ColumnCount; j++)
  {
  if (dgv[j, i].ValueType == typeof(string))
  {
  excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();
  }
  else
  {
  excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
  }
  }
  }
  return true;
  }

  }
}
运行之后出现错误:
无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。

我就是把原来用的office重新装了一遍,其他的没动,这是怎么回事……代码没错啊
搜索更多相关主题的帖子: excel表格 
2011-08-12 17:41
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
得分:10 
把Excel.Application xlsApp = new Excel.Applicaitn();
改为 Excel._Application xlsApp = new Excel._Application();
试试看

2011-08-13 11:58
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
得分:10 
excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();

excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
改为
((Microsoft.Office.Interop.Excel.Worksheet)m_objWorkSheets[1]).Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();

((Microsoft.Office.Interop.Excel.Worksheet)m_objWorkSheets[1]).Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();

站在春哥的肩膀上
2011-08-15 09:51
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
得分:0 
写错了
excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();

excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
改为
((Microsoft.Office.Interop.Excel.Worksheet)excel.Workbooks[1].Sheets[1]).Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();

((Microsoft.Office.Interop.Excel.Worksheet)excel.Workbooks[1].Sheets[1]).Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();

站在春哥的肩膀上
2011-08-15 11:35
a6068132
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:131
注 册:2011-5-10
得分:0 
请下载Interop.Excel.dll,再引用这个动态库
2011-08-23 09:19
毛毛虫—末末
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-7-19
得分:0 
你装的Excel是2003的吗?如果不是你换成2003的试试
2012-07-26 15:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-347448-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099287 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved