当前位置:编程学习 > C#/ASP.NET >>

Excel的控制问题:如何固定的修改一个当前活动的本地的excel文件? 现在是只要更新数据,就会心打开一个worksheet 求助~~

打开本地的一个excel,想固定的时间就更新当前的excel数据。我想做出的效果是excel一直达开,定时在当前excel中更新数据。
但问题是现在只要更新数据,就会自动打开一个新的worksheet,将数据添加到新的worksheet中,而不是在当前活动的worksheet中更新,求助



Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

//txtPath.Text是一个本地的excel路径
            Workbook  workbook= app.Workbooks.Open(txtPath.Text, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            workbook= app.ActiveWorkbook;

            app.Visible = true; //如果只想用程序控制该excel而不想让用户操作时候,可以设置为false
            app.UserControl = true;

            //workbook = workbooks[0];

            System.Data.DataTable dt = getData();

            //往Excel的行填写数据
            int exclo = 0;//Excel的列
                exclo++;
            foreach (DataColumn dc in dt.Columns)
            {
                app.Cells[1, exclo] = dc.ColumnName;
            }

            //往Excel中填入数据
            int rowIndex = 0;
            
            foreach (DataRow dr in dt.Rows)
            {
                int cellIndex = 0;
                foreach (DataColumn dc in dt.Columns)
                {
                    app.Cells[rowIndex + 2, cellIndex + 1] = dr[dc.ColumnName].ToString();
                    cellIndex++;
                }
                rowIndex++;
            }
--------------------编程问答-------------------- Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

//txtPath.Text是一个本地的excel路径
            Workbook  workbook= app.Workbooks.Open(txtPath.Text, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

只运行一次
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
http://feiyun0112.cnblogs.com/ --------------------编程问答-------------------- Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

//txtPath.Text是一个本地的excel路径
            Workbook  workbook= app.Workbooks.Open(txtPath.Text, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

只运行一次
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
http://feiyun0112.cnblogs.com/ --------------------编程问答-------------------- 1. 你做的是BS还是CS的,一直打开会一直占用着资源的,这种想法本身就是一种浪费……
2. 你的这些代码是写在一个函数中的还是怎样,如果是每更新一次就运行这些代码的话是要打开新的WS的,个人建议你更新完成后就关闭excel进程,使用时再打开,这样能比较合理的利用资源,:) --------------------编程问答--------------------
引用 3 楼 zjclugger 的回复:
1. 你做的是BS还是CS的,一直打开会一直占用着资源的,这种想法本身就是一种浪费…… 
2. 你的这些代码是写在一个函数中的还是怎样,如果是每更新一次就运行这些代码的话是要打开新的WS的,个人建议你更新完成后就关闭excel进程,使用时再打开,这样能比较合理的利用资源,:)

1、我做的事cs的
2、这个方法是在一个函数中,使用的时候反复调用,但是刷新的时间比较短的,估计10秒左右吧,我是想把excel一直呈现给客户,如果关掉的话,客户就看不到了,而且反反复复,不太好看吧?
不知道是不是这个意思,呵呵,您有更好的方法么?请赐教 --------------------编程问答--------------------
引用 3 楼 zjclugger 的回复:
1. 你做的是BS还是CS的,一直打开会一直占用着资源的,这种想法本身就是一种浪费…… 
2. 你的这些代码是写在一个函数中的还是怎样,如果是每更新一次就运行这些代码的话是要打开新的WS的,个人建议你更新完成后就关闭excel进程,使用时再打开,这样能比较合理的利用资源,:)

1、我做的事cs的
2、这个方法是在一个函数中,使用的时候反复调用,但是刷新的时间比较短的,估计10秒左右吧,我是想把excel一直呈现给客户,如果关掉的话,客户就看不到了,而且反反复复,不太好看吧?
不知道是不是这个意思,呵呵,您有更好的方法么?请赐教 --------------------编程问答--------------------
引用楼主 sharpriver 的帖子:
打开本地的一个excel,想固定的时间就更新当前的excel数据。我想做出的效果是excel一直达开,定时在当前excel中更新数据。 
但问题是现在只要更新数据,就会自动打开一个新的worksheet,将数据添加到新的worksheet中,而不是在当前活动的worksheet中更新,求助 


C# code

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

//txtPath.Text是一个本地的excel路径

谢谢了,是的,已经可以了 --------------------编程问答--------------------
引用 1 楼 feiyun0112 的回复:
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); 

//txtPath.Text是一个本地的excel路径 
            Workbook  workbook= app.Workbooks.Open(txtPath.Text, Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
                         …

已经可以了,多谢
引用错了,呵呵
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,