asp.net 导出Excel问题
发布日期:2021-08-28 12:01:31 浏览次数:1 分类:技术文章

本文共 3913 字,大约阅读时间需要 13 分钟。

  今天把我之前做的东西拿出来又看了看,这是之前的一个Bug自己也明白原因大概知道问题出现在哪,但是由于自己接触的少,还是没整出来

    excel1.Visible = true;放在服务器上报错报这种错误,由于当时自己在本机上做的测试都好好地,然后兴奋地放到服务器上发布了,谁知道报了错误,开始报80000错误后来解决了,中间报了好几种错误自己都给解决了,但是最后报的这个错误没解决,上面那句代码好像是不支持在服务器上直接打开,按照道理应该是先下载,然后保存本机上,才可以打开,思路是这样的正常。但是我很纳闷为什么我在自己本机上做测试都可以,本机相当于自己的服务器。放到服务器上为什么不可以支持客户端直接访问到服务器上,把资源下载到客户自己电脑上,然后打开。

  剩下的解决方案自己没解决,所以请高手给我指点下,先谢谢大家!

  

 

        string id = Convert.ToString(Session["userid"]);

        if(id=="")

            {

            Page.RegisterStartupScript("alert", "<script language=javascript>alert('登陆超时,请重新登陆!');     window.parent.location='Index.aspx';</script>");
            return;
        }

        int xh = 0;

        if (txtXH.Text.Trim() != "")

        {

            xh = Convert.ToInt32(txtXH.Text.Trim().ToString());

        }

        else

        {

            xh = Convert.ToInt32(Request.QueryString["xh"]);

        }

        //获取总共记录多少条

        string sql = string.Format("select count(*) from YK_YPCGMX where ghdw_id= '{0}' and cgxh='{1}'", id, xh);

        // conn.Open();

        SqlCommand cmd = new SqlCommand(sql, conn);

        if (conn.State == ConnectionState.Closed)

        {

            conn.Open();

        }

        int count = Convert.ToInt32(cmd.ExecuteScalar());

        Application excel1 = new Application();

        Workbook workbook1 = excel1.Workbooks.Add(true);

        Worksheet worksheet1 = (Worksheet)workbook1.Worksheets["sheet1"];

        //控制Excel表中要显示的列行 (count控制列数)

        Range range1 = worksheet1.get_Range("A1", "D" + (count + 1));//选择操作块

        // range1.Font.Bold = true;//设置黑体

        // range1.Font.Size = 18;//设置字体大小

        //range1.Font.Name = "仿宋";//设置字体

        //range1.Font.Color = System.Drawing.ColorTranslator.ToOle(Color.Blue);//设置字体颜色

        range1.HorizontalAlignment = XlHAlign.xlHAlignCenter;//设置水平对齐方式

        range1.VerticalAlignment = XlVAlign.xlVAlignCenter;//设置垂直对齐方式  

        //填充Excel

        //  range1.Value2 = ds;

        worksheet1.Cells[1, 1] = "订单号";

        worksheet1.Cells[1, 2] = "药品idm";

        worksheet1.Cells[1, 3] = "药品名称";

        worksheet1.Cells[1, 4] = "药品规格";

        worksheet1.Cells[1, 5] = "药品代码";

        worksheet1.Cells[1, 6] = "药品单位";

        worksheet1.Cells[1, 7] = "采购数量";

        worksheet1.Cells[1, 8] = "供货单位名称";

        worksheet1.Cells[1, 9] = "科室代码";

        worksheet1.Cells[1, 10] = "科室名称";

        worksheet1.Cells[1, 11] = "厂家名称";

        string sql1 = string.Format("select cgxh as xh,cd_idm as 药品idm,A.ypmc as 药品名称,A.ypgg as 药品规格, A.ypdm  as 药品代码, A.ykdw as 单位, Convert(decimal(18,1),cgsl/A.ykxs) as 数量 ,A.ghdw_mc  AS 供商名称,A.ghdw_id as 代码,ksdm as 科室代码, name as 科室名称,cjmc as 厂家名称 from YK_YPCGMX AS A inner join YK_YPCGZD AS B ON A.cgxh=B.xh inner join YF_YFDMK AS C on C.id=B.ksdm inner join YK_YPCDMLK AS D ON A.cd_idm=D.idm where A.ghdw_id='{0}' and A.cgxh='{1}'", id, xh);//查询语句

        DataSet ds1 = new DataSet();

        SqlDataAdapter sda = new SqlDataAdapter(sql1, conn);

        sda.Fill(ds1, "ds");

        System.Data.DataTable dt = ds1.Tables[0];

        //循环输出每条记录

        for (int i = 2; i < count + 2; i++)

        {

            worksheet1.Cells[i, 1] = dt.Rows[i - 2][0];

            worksheet1.Cells[i, 2] = dt.Rows[i - 2][1];

            worksheet1.Cells[i, 3] = dt.Rows[i - 2][2];

            worksheet1.Cells[i, 4] = dt.Rows[i - 2][3];

            worksheet1.Cells[i, 5] = dt.Rows[i - 2][4];

            worksheet1.Cells[i, 6] = dt.Rows[i - 2][5];

            worksheet1.Cells[i, 7] = dt.Rows[i - 2][6];

            worksheet1.Cells[i, 8] = dt.Rows[i - 2][7];

            worksheet1.Cells[i, 9] = dt.Rows[i - 2][8];

            worksheet1.Cells[i, 10] = dt.Rows[i - 2][9];

            worksheet1.Cells[i, 11] = dt.Rows[i - 2][10];

 

        }

        range1.Borders.get_Item(XlBordersIndex.xlEdgeTop).LineStyle = XlLineStyle.xlContinuous;

        range1.Borders.get_Item(XlBordersIndex.xlEdgeRight).LineStyle = XlLineStyle.xlContinuous;

        range1.Borders.get_Item(XlBordersIndex.xlEdgeBottom).LineStyle = XlLineStyle.xlContinuous;

        range1.Borders.get_Item(XlBordersIndex.xlEdgeLeft).LineStyle = XlLineStyle.xlContinuous;

        //也可用后面的代码代替上面四项range1.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic,null);

        range1.Borders.get_Item(XlBordersIndex.xlInsideHorizontal).LineStyle = XlLineStyle.xlContinuous;//块内竖线

        range1.Borders.get_Item(XlBordersIndex.xlInsideVertical).LineStyle = XlLineStyle.xlContinuous;//块内横线

        // excel1.Save("aaa.xls");

        excel1.Visible = true;

        conn.Close();

 

 

转载于:https://www.cnblogs.com/yuelin/archive/2011/10/14/2212219.html

转载地址:https://blog.csdn.net/weixin_33957648/article/details/93550841 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:设置自动会计时,常数位置提示APP-FND-00804错误,解决方法
下一篇:css3

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年02月29日 18时56分27秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

微信小程序 获取当前手机的可视_转载 JS获取当前手机浏览器可视区域大小 2019-04-21
ubuntu安装grafana_Ubuntu 16.04 安装Grafana并配置监控(Grafana + MySQL) 2019-04-21
图上上传页面设计_福利活动丨四周年专题页面今日上线,参与活动领取狼蛛新皮肤!... 2019-04-21
java number 相加_Java 中的数据流和函数式编程 2019-04-21
mysql 物流系统_物流配送管理系统(ssm,mysql) 2019-04-21
mysql 字段关键字冲突_python mysql 字段与关键字冲突的解决方式 2019-04-21
java mmap内存回收_在mmap内存中有效分配动态数组 2019-04-21
java从邮箱获取邮件_javaMail正确读取邮箱内容的方式 2019-04-21
mysql 元组_Python mysql连接器返回元组 2019-04-21
java画布中让整个图一起移动_Java-沿任何方向连续滚动一个大型无缝图像 2019-04-21
java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法 2019-04-21
linux ssh配置目录权限管理,Linux下ssh/sftp配置和权限设置 2019-04-21
linux内核编程软件,Linux内核编程之第一个内核程序 2019-04-21
Linux搭建防火墙服务器,线上centos linux服务器iptables防火墙简易配置模板 2019-04-21
linux redhat 版本查看,查看RedHat linux版本的三种方法 2019-04-21
linux下实用小脚本,十个增加 Linux Shell 脚本趣味的小工具 2019-04-21
xshell中linux运行py文件,python3模拟实现xshell远程执行liunx命令的方法 2019-04-21
linux控制设备io,Linux IO体系结构 2019-04-21
重置错误次数linux,Linux使用PAM锁定多次登陆失败的用户(含重置错误次数) 2019-04-21
C语言handler类作用,Handle的原理(Looper、Handler、Message三者关系) 2019-04-21