我想用js导出excel 内容为界面的gridview 的内容
导出excel 的 要能设置相应的格式
谢谢

解决方案 »

  1.   

    参考:http://topic.csdn.net/u/20100903/10/9b06df63-8ec8-44f9-a195-079502d60352.html<html>
      <head>
        <script language="javascript" type="text/javascript">
          function MakeExcel() {
            var i, j, n;
            try {
              var xls = new ActiveXObject("Excel.Application");
            }
            catch(e) {
              alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请点击【帮助】了解浏览器设置方法!");
                return "";
            }
            xls.visible =true; // 设置excel为可见
            var xlBook = xls.Workbooks.Add;
            var xlsheet = xlBook.Worksheets(1);
            <!--合并-->
            xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true;
            xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value="发卡记录";
            xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,3)).Interior.ColorIndex=5; // 设置底色为蓝色
            // xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4; // 设置字体色
            // xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色  设置背景色 Rows(1).Font.ColorIndex=4
            <!--设置行高-->
            xlsheet.Rows(1).RowHeight = 25;
            <!--设置字体 ws.Range(ws.Cells(i0+1,j0), ws.Cells(i0+1,j1)).Font.Size = 13 -->
            xlsheet.Rows(1).Font.Size=14;
            <!--设置字体 设置选定区的字体  xlsheet.Range(xlsheet.Cells(i0,j0), ws.Cells(i0,j0)).Font.Name = "黑体" -->
            xlsheet.Rows(1).Font.Name="黑体";
            <!--设置列宽 xlsheet.Columns(2)=14;-->
            xlsheet.Columns("A:D").ColumnWidth =18;
            <!--设置显示字符而不是数字-->
            xlsheet.Columns(2).NumberFormatLocal="@";
            xlsheet.Columns(7).NumberFormatLocal="@";
            //设置单元格内容自动换行 range.WrapText  =  true  ;
            //设置单元格内容水平对齐方式 range.HorizontalAlignment  =  Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式
            //range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter
            //range.WrapText  =  true;  xlsheet.Rows(3).WrapText=true  自动换行
            //设置标题栏
            xlsheet.Cells(2, 1).Value = "卡号";
            xlsheet.Cells(2, 2).Value = "密码";
            xlsheet.Cells(2, 3).Value = "计费方式";
            xlsheet.Cells(2, 4).Value = "有效天数";
            xlsheet.Cells(2, 5).Value = "金额";
            xlsheet.Cells(2, 6).Value = "所属服务项目";
            xlsheet.Cells(2, 7).Value = "发卡时间";
            var oTable = document.all['fors:data'];
            var rowNum = oTable.rows.length;
            for(i = 2; i <= rowNum; i++) {
              for (j = 1; j <= 7; j++) {
                //html table类容写到excel
                xlsheet.Cells(i + 1, j).Value = oTable.rows(i - 1).cells(j - 1).innerHTML;
              }
            }
            <!--  xlsheet.Range(xls.Cells(i+4,2),xls.Cells(rowNum,4)).Merge; -->
            // xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)).BorderAround , 4
            // for(mn=1,mn<=6;mn++) .    xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit;
            xlsheet.Columns.AutoFit;
            xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7)).HorizontalAlignment =-4108;//居中
            xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108;
            xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Font.Size=10;
            xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(3).Weight = 2; //设置左边距
            xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(4).Weight = 2;//设置右边距
            xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(1).Weight = 2;//设置顶边距
            xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(2).Weight = 2;//设置底边距
            xls.UserControl = true;  //很重要,不能省略,不然会出问题 意思是excel交由用户控制
            xls=null;
            xlBook=null;
            xlsheet=null;
          }
        </script>
        <link href="css/styles3.css" rel="stylesheet" type="text/css"/>
        <title>ziyuanweihu</title>
      </head>
      <body>
        <form id="fors" method="post" action="/WebModule/admins/card/showcard.faces" enctype="application/x-www-form-urlencoded">
          <table id="fors:top" border="0" cellpadding="0" cellspacing="0" width="100%">
            <tbody>
              <tr>
                <td class="left"><img src="images/jiao1.gif" alt="" /></td>
                <td class="topMiddle"></td>
                <td class="right"><img src="images/jiao2.gif" alt="" /></td>
              </tr>
            </tbody>
          </table> 
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
            <tbody>
              <tr>
                <td class="middleLeft"></td>
                <td class="btstyle">
                  <table id="fors:sort" border="0" cellpadding="0" cellspacing="0" style="valign:center" width="100%">
                    <tbody>
                      <tr>
                        <td class="btstyle">
                          <input type="button" name="fors:_id7" value="生成excel文件"  />
                        </td>
                      </tr>
                    </tbody>
                  </table>
                  <table id="fors:data" border="1" cellpadding="0" cellspacing="1" width="100%">
                    <thead>
                      <tr>
                        <th scope="col"><span id="fors:data:headerText1">卡号</span></th>
                        <th scope="col"><span id="fors:data:headerText2">密码</span></th>
                        <th scope="col"><span id="fors:data:headerText3">计费方式</span></th>
                        <th scope="col"><span id="fors:data:headerText4">有效天数</span></th>
                        <th scope="col">金额</th>
                        <th scope="col"><span id="fors:data:headerText6">所属服务项目</span></th>
                        <th scope="col"><span id="fors:data:headerText7">发卡时间</span></th>
                      </tr>
                    </thead>
                    <tbody>
                      <tr>
                        <td>h000010010</td>
                        <td>543860</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010011</td>
                        <td>683352</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010012</td>
                        <td>433215</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010013</td>
                        <td>393899</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010014</td>
                        <td>031736</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010015</td>
                        <td>188600</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010016</td>
                        <td>363407</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010017</td>
                        <td>175315</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010018</td>
                        <td>354437</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                      <tr>
                        <td>h000010019</td>
                        <td>234750</td>
                        <td>计点</td>
                        <td></td>
                        <td>2.0</td>
                        <td>测试项目</td>
                        <td>2006-06-23 10:14:40.843</td>
                      </tr>
                    </tbody>
                  </table>
                </td>
                <td class="middleRight"></td>
              </tr>
            </tbody>
          </table>
          <table id="fors:bottom" border="0" cellpadding="0" cellspacing="0" width="100%">
            <tbody>
              <tr>
                <td class="left">
                  <img src="images/jiao3.gif" alt=""/>
                </td>
                <td class="bottomMiddle"> </td>
                <td class="right">
                  <img src="images/jiao4.gif" alt=""/>
                </td>
              </tr>
            </tbody>
          </table>
          <input type="hidden" name="fors" value="fors" />
        </form>
      </body>
    </html>
      

  2.   

    不行我要的导出的内容是gridview的  不是已经写好的table
      

  3.   

    其实我不建议你在JS中实现导出  这样很多客户有限制 
    你可以在JS中 open到另外一个页面 然后导出的功能都在那页执行  照样是CS代码  这样还是达到你最初的目的无刷新
    另外你何必要一定用导gridview了  你直接将数据源datatable或者什么的去导出excel不是更好么 
      

  4.   


    是ext的gridview还是插件js的gridview
    js的gridview也是表格的一种,可能是div布局的
    其实导出数据都是一样的,只要你把数据获得了就可以导出了
      

  5.   


    我很多页面都用到导出excel都是gridview的 
    现在的导出excel是js导出的
    但是无法设置的格式
      

  6.   

    用js导出Excel的话,不建议使用,必须要做浏览器的设置。如果在客户端的话这是不可能的。