| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 731 人关注过本帖
标题:导出excel文件,旧文件内容不被覆盖
只看楼主 加入收藏
kudincha
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2009-4-7
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:3 
导出excel文件,旧文件内容不被覆盖
在一个winform中,写入以下代码导出一个excel文件,生成的文件名为tt1.xls,其sheet1.xls的表名改为"表1"。但是,在第二次保存excel文件后,生成另一个文件tt2.xls。但是tt1.xls的内容却被tt2.xls的内容覆盖了,求问原因及解决办法。如何能够在生成新的excel文件的同时,保持旧文件不被改变
程序代码:
private void SaveTableToExcel(string filepath)
        {
            Microsoft.Office.Interop.Excel.Application app =
                new Microsoft.Office.Interop.Excel.ApplicationClass();
            try
            {
                app.Visible = false;
                Excel.Workbook wBook = app.Application.Workbooks.Add(true);
                Excel.Worksheet wSheet = wBook.Worksheets[1] as Excel.Worksheet;
                wSheet.Name = "表1";
                int rowNum = connsqlClass.hisListData.Count;
                int columnNum = 6;
                object[,] dataArray = new object[rowNum + 1, columnNum];
                //将dataTable的标题导入到EXECL的标题(第一行)
                dataArray[0, 0] = "时间";
                dataArray[0, 1] = "编号";
                dataArray[0, 2] = "名称";
                dataArray[0, 3] = "位置";
                dataArray[0, 4] = "类型";
                dataArray[0, 5] = "";
                for (int i = 0; i < rowNum; i++)
                {
                    dataArray[i + 1, 0] = connsqlClass.hisListTime[i];
                    dataArray[i + 1, 1] = No;
                    dataArray[i + 1, 2] = Name;
                    dataArray[i + 1, 3] = Place;
                    dataArray[i + 1, 4] = Type;
                    dataArray[i + 1, 5] = connsqlClass.hisListData[i];
                }
                wSheet.get_Range("A2", wSheet.Cells[rowNum + 1, columnNum]).Value2 = dataArray;

                app.DisplayAlerts = false;
                app.AlertBeforeOverwriting = false;
                //保存工作簿
                wBook.Save();
                //保存excel文件
                app.Save(filepath);
                app.SaveWorkspace(filepath);
                app.Quit();
                app = null;
            }
            catch (Exception err)
            {
                MessageBox.Show("导出Excel出错!错误原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally { }
       
        }
搜索更多相关主题的帖子: excel 如何 
2012-06-25 09:33
serious
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:81
专家分:497
注 册:2009-8-18
收藏
得分:0 
你试用了wBook.SaveAs的方法吗。
2012-06-26 06:41
kudincha
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2009-4-7
收藏
得分:0 
尝试改为wBook.SaveAs()的方法,结果仍是覆盖了旧的文件
2012-06-26 10:04
serious
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:81
专家分:497
注 册:2009-8-18
收藏
得分:10 
你应该加新的文件名:
wBook.SaveAs("tt2.xls"

2012-06-27 06:41
快速回复:导出excel文件,旧文件内容不被覆盖
数据加载中...
 
   



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

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