操作Excel慢的问题

dsd999 2009-05-13 11:15:38
还没开始读写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 Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;


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

}

private Microsoft.Office.Interop.Excel.Application xlApp ;

private void Form1_Load(object sender, EventArgs e) {

xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
if (xlApp == null) { MessageBox.Show("Can't open Excel!"); return; }


}
}
}

窗口半天才出现,究竟是为什么????
...全文
1574 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
dsd999 2009-05-18
  • 打赏
  • 举报
回复
看来这个问题是没法解决了。
zhuqueta0101 2009-05-14
  • 打赏
  • 举报
回复
你是不是还有别的代码异常了,看下输出

最好的构造函数中调用new,否则有别的事件会触发使用的
dsd999 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zhaoweiting0609 的回复:]
你的机器打开Excel是不是每次也都慢?
[/Quote]

机器打开Excel很正常,一点也不慢
dsd999 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 Hassle 的回复:]
private void button1_Click(object sender, EventArgs e)
{
object[,] aDat = new object[10000, 26];
for (int i = 0; i < aDat.GetLength(0); i++)
{
for (int j = 0; j < aDat.GetLength(1); j++) aDat[i, j] = i + j;
}
System.Reflection.Missing oMss = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application oApp = new Microsoft.Office.Inte…
[/Quote]

我试试,先谢谢了
zhaoweiting0609 2009-05-14
  • 打赏
  • 举报
回复
你的机器打开Excel是不是每次也都慢?
Hassle 2009-05-14
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
object[,] aDat = new object[10000, 26];
for (int i = 0; i < aDat.GetLength(0); i++)
{
for (int j = 0; j < aDat.GetLength(1); j++) aDat[i, j] = i + j;
}
System.Reflection.Missing oMss = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application oApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook oBok = oApp.Workbooks.Add(oMss);
Microsoft.Office.Interop.Excel.Worksheet oSht = (Microsoft.Office.Interop.Excel.Worksheet)oBok.Worksheets.Add(oMss, oMss, oMss, oMss);
oSht.Name = "报表";
oSht.get_Range(oSht.Cells[1, 1], oSht.Cells[aDat.GetLength(0), aDat.GetLength(1)]).Value2 = aDat;
oApp.Visible = true;
}

处理器 : AMD Athlon(tm) 7750 2.70GHz
操作系统: XPsp2
测试结果: < 1s
dsd999 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 vvvwww521 的回复:]
代码有些问题吧
[/Quote]

有什么问题,快说说,这两天搞的我头都大了。
vvvwww521 2009-05-14
  • 打赏
  • 举报
回复
代码有些问题吧
dsd999 2009-05-14
  • 打赏
  • 举报
回复
那段代码也不好用,仍然是慢,慢的要命
dsd999 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhuqueta0101 的回复:]
你是不是还有别的代码异常了,看下输出

最好的构造函数中调用new,否则有别的事件会触发使用的
[/Quote]

代码很简单,就是我发的那个。

就是用vs2008建个winform程序,然后引用excel组件,别的什么都没做。
dsd999 2009-05-14
  • 打赏
  • 举报
回复
15楼的代码也是慢
aight 2009-05-13
  • 打赏
  • 举报
回复
帮顶,慢的没法解决的话加个load框就不觉得慢了,哈
dsd999 2009-05-13
  • 打赏
  • 举报
回复
自己顶一下,有没有人来帮帮忙
royGraphics2009 2009-05-13
  • 打赏
  • 举报
回复
我也有这样的问题,有没有哪个高手解决下,
dsd999 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 surlew 的回复:]
在程序启动的时候加载new Microsoft.Office.Interop.Excel.ApplicationClass();
[/Quote]

也慢啊
surlew 2009-05-13
  • 打赏
  • 举报
回复
在程序启动的时候加载new Microsoft.Office.Interop.Excel.ApplicationClass();
dsd999 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hhhh63 的回复:]
这是正常的,第一次启动Excel就是慢,第二次就快了。直接点Excel图标启动也要这么长的时间。
我的方法是显示一个等待图片。
[/Quote]

我是每次启动都慢,不光第一次
hhhh63 2009-05-13
  • 打赏
  • 举报
回复
这是正常的,第一次启动Excel就是慢,第二次就快了。直接点Excel图标启动也要这么长的时间。
我的方法是显示一个等待图片。
dsd999 2009-05-13
  • 打赏
  • 举报
回复
我再试,别着急,有结果会发上来
mlliqiushi 2009-05-13
  • 打赏
  • 举报
回复
楼上的解决问题了???
加载更多回复(2)

110,533

社区成员

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

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

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