| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2397 人关注过本帖
标题:开发了一个将网页报表以Excel格式导出到本地计算机的功能,Excel文件正常导 ...
只看楼主 加入收藏
aisalong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-3-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
开发了一个将网页报表以Excel格式导出到本地计算机的功能,Excel文件正常导出,可文件没有内容,请问各位大侠,怎么解决?
该网站前台由asp开发,后台则使用C#编写,使用 Microsoft.Office.Interop.Excel控件处理文件导出功能。目前导出Excel报表功能出现异常,具体表现为文件可正常导出,但导出后的Excel文件打开后发现没有内容。请问各位大侠,如何解决该问题?
我先后尝试使用不同版本的Microsoft.Office.Interop.Excel控件,均无效。拜托各位大侠帮忙看看问题出在哪?不甚感激
搜索更多相关主题的帖子: Excel asp开发 计算机 网页 前台 
2016-03-14 13:43
多多啦啦杰
Rank: 2
等 级:论坛游民
威 望:3
帖 子:2
专家分:20
注 册:2016-3-15
收藏
得分:20 
    excel导出,最好将需导出的内容与DataTable绑定。可参照~
   public static bool FastExportToExcel(System.Data.DataTable dt, ProgressBar proBar, System.Windows.Forms.Label labPercent)
        {
            System.Windows.Forms.SaveFileDialog saveDia = new SaveFileDialog();
            saveDia.Filter = "Excel|*.xls";
            saveDia.Title = "导出为Excel文件";
            if (!(saveDia.ShowDialog() == System.Windows.Forms.DialogResult.OK
             && !string.Empty.Equals(saveDia.FileName)))
            {
                return false;
            }
            long totalCount = dt.Rows.Count;
            long rowRead = 0;
            float percent = 0;
            string FileName = "";
            FileName = saveDia.FileName;
            FileStream objFileStream;
            StreamWriter objStreamWriter;
            string strLine = "title";
            objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
            objStreamWriter = new StreamWriter(objFileStream, Encoding.Unicode);

            //objStreamWriter.WriteLine(strLine);//寫入標題
            strLine = "";

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                strLine = strLine + dt.Columns[i].ColumnName.ToString() + "" + Convert.ToChar(9);
            }
            objStreamWriter.WriteLine(strLine);
            strLine = "";

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //strLine = strLine + (i + 1) + Convert.ToChar(9);//增加序號
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    if (dt.Columns[j].ColumnName.ToLower() == "time" && dt.Rows[i][j] != Convert.DBNull)
                    {
                        string strDateTime = Convert.ToDateTime(dt.Rows[i][j]).ToString("yyyy/MM/dd HH:mm:ss.fff");
                        strLine = strLine + " " + strDateTime + Convert.ToChar(9); //9:tab字符
                    }
                    else
                    {
                        strLine = strLine + dt.Rows[i][j].ToString() + Convert.ToChar(9); //9:tab字符
                    }
                }
                objStreamWriter.WriteLine(strLine);
                strLine = "";

                rowRead++;
                percent = ((float)(100 * rowRead)) / totalCount;
                System.Windows.Forms.Application.DoEvents();
                labPercent.Text = percent + "%"; labPercent.Refresh();//顯示百分比進度
                proBar.Value += 1;
            }
            objStreamWriter.Close();
            objFileStream.Close();

            return true;
        }
2016-03-15 15:27
快速回复:开发了一个将网页报表以Excel格式导出到本地计算机的功能,Excel文件正 ...
数据加载中...
 
   



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

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