许多csdn上的朋友在寻求如何提高生成Excel时写表格的速度,我在这有点见解,以供大家分享。
首先是SreenUpdateing 属性,这个属性是Application的属性,它指示是否在生成Excel时,你需要及时更新显示屏。当然,在生成时,最好不要这样,然而在生成后,你需要将这个属性设置为true,原因就不说了吧。
当然,在生成之前,你最好能将其可见这个属性设置为false,生成后才显示,那样也能稍微提高点效率。
另外,我还有个秘密武器,就是C#与Excel的交互时,每次都需要调用Excel的接口,所以,如果你是用2层循环来对每个格子赋值,那么你对每个格子赋值的时候,都需要调用Excel的接口,那是非常耗资源的,然而有另外一种办法来解决这个问题。即对一个范围进行赋值。
//此代码基于vs2005下的vsto2005平台下的部分代码。
private void DataBind()
{
dbname = @"C:/Documents and Settings/xiangx/桌面/MTshapeUp.mdb";
string Dbname = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + dbname;
OleDbConnection con = new OleDbConnection(Dbname);
OleDbCommand com = new OleDbCommand("select * from T_MT_INFO_RULE