0 0

java如何将html转为excel文件?10

众所周知,excel可以识别html,我现在有一段html代码(字符串格式,其中只有一个表格),由于结构比较复杂,不希望通过POI或其他框架重新构建Excel文件,而是想直接将html转换为excel文件提供用户下载。
我现在使用的方式是,直接创建一个后缀为.xls的文件,将html的字符串写入这个文件中,下载这个文件。
但这种方式有一个缺点,就是打开文件时,excel会提示文件扩展名与文件格式不符合(忽略提示可以正常打开,正常显示)。
我想问一下,有没有方法,可以将包含html代码的文件(例如.txt文件)另存为excel文件,这样打开时就不会出现上面的提示。
2013年1月05日 14:12

3个答案 按时间排序 按投票排序

0 0

首先excel另存为网页格式,会出现一个html文件,然后response.setContentType("application/vnd.ms-excel");
如果要对excel进行填充数据,可以使用一些模板引擎,比如freemarker和velocity

2013年1月08日 13:52
0 0

设置你页面的response相应格式
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String now = DateUtil.getNow().substring(0, 10);
String fileName = now;
fileName = new String(fileName.getBytes("GB2312"),"ISO8859-1");
response.setHeader("Content-disposition","attachment; filename=\"" + fileName + ".xls\"");

2013年1月06日 15:04
0 0

<html>
<head>
  <script language="javascript">

  var oXL ;
  var oWB ;
  var oSheet;
  var startrow=1,startcol=1;//Excel起始行列,可根据实际需要进行修改
  var row=startrow,col=startcol;
 
function tableToExcel(){
  oXL = new ActiveXObject("Excel.Application");
  oWB = oXL.Workbooks.Add();
  oSheet = oWB.Worksheets(1);
  oSheet.Columns.ColumnWidth=15;
  var table = document.all("tb2");
  var  i,j;//html表格行

var span=new Array();
var colum=0;//计算一共多少列


   for( j=0;j<table.cells.length;j++){
     if(table.rows(0).cells(j)!=null){
      colum=colum+table.rows(0).cells(j).colSpan;
      }
    }
//#############start 设置没个合并前的单元格的宽度
 
  for( i=0;i<table.rows.length;i++){
    var rowspan=0;
    var colspan=0;
    col=startcol;
   for( j=0;j<colum;j++){
     if(table.rows(i).cells(j)!=null){
      
      colspan= table.rows(i).cells(j).colSpan;

       var tmp=[col,row];
     
       for(var oo=0;oo<span.length;oo++){
        if(col==span[oo][0]&&row==span[oo][1]){
         col=col+1;
         }
        }
       rowspan=  table.rows(i).cells(j).rowSpan;
     
       if(rowspan>1){
       
        for(var x=col;x<(col+colspan);x++){
         for(var y= row+1;y<(row+rowspan);y++){
         var yx=[x,y];
         span.push(yx);
         }
        }
       
       }
      oSheet.Columns(col).ColumnWidth=(table.rows(i).cells(j).offsetWidth-13)/8+1;//Excel的表格宽度单位为字符,一个字符时长度为13像素,每增加一个字符则增加8像素的长度。
      col=col+colspan;
      
      
     }
    }
     row++;
   }
//##############end

row=startrow,col=startcol;

  for( i=0;i<table.rows.length;i++){
    var rowspan=0;
    var colspan=0;
    col=startcol;
   for( j=0;j<colum;j++){
     if(table.rows(i).cells(j)!=null){
      
      colspan= table.rows(i).cells(j).colSpan;

       var tmp=[col,row];
     
       for(var oo=0;oo<span.length;oo++){
        if(col==span[oo][0]&&row==span[oo][1]){
         col=col+1;
         }
        }
       rowspan=  table.rows(i).cells(j).rowSpan;
     
       if(rowspan>1){
       
        for(var x=col;x<(col+colspan);x++){
         for(var y= row+1;y<(row+rowspan);y++){
         var yx=[x,y];
         span.push(yx);
         }
        }
       
       }
      
       if(colspan>1||rowspan>1){

      oSheet.Range(oSheet.Cells(row,col),oSheet.Cells(row+rowspan-1,col+colspan-1)).Merge();
     
       }
      
       oSheet.Cells(row,col).Value=table.rows(i).cells(j).innerText;
     
       col=col+colspan;
      
      
     }
    }
     row++;
   }

//设置单元格格式
oSheet.Range(oSheet.Cells(startrow,startcol),oSheet.Cells(row-1,col-1)).Borders.Weight = 2;
oSheet.Range(oSheet.Cells(startrow,startcol),oSheet.Cells(row-1,col-1)).HorizontalAlignment=3;
oSheet.Range(oSheet.Cells(startrow,startcol),oSheet.Cells(row-1,col-1)).VerticalAlignment = 2;
oSheet.Range(oSheet.Cells(startrow,startcol),oSheet.Cells(row-1,col-1)).WrapText=true;
oXL.Visible = true;
oXL.UserControl = true;
}
</script>
</head>
<body>
<table id="tb2" border="1" width="100%" class="tb1" bordercolor="#000000">
<tr align="center">
  <td rowspan="2" width="25%" class="td8">部门</td>
  <td rowspan="2" width="15%" class="td8">上线项目数</td>
  <td colspan="5">其中</td>
</tr>
<tr align="center">
  <td width="12%" class="td8">拟稿</td>
  <td width="12%" class="td8">发起审批</td>
  <td width="12%" class="td8">完成审批</td>
  <td width="12%" class="td8">实施</td>
  <td width="12%" class="td8">办结</td>
</tr>




  <tr align="center">
  <td  width="25%" class="td8">部门1</td>
  <td  width="15%" class="td8">203</td>
  <td width="12%" class="td8">拟稿1</td>
  <td width="12%" class="td8">发起审批1</td>
  <td width="12%" class="td8">完成审批1</td>
  <td width="12%" class="td8">实施1</td>
  <td width="12%" class="td8">办结1</td>
</tr>

</table>

<input type="button" value="测试" onclick="tableToExcel()">
</body>
<html>

2013年1月05日 17:15

相关推荐

    java后台html 转excel

    在Java后台处理HTML数据并转换成Excel文件是一个常见的需求,特别是在数据分析、报表生成或导出功能中。这个技术涉及到HTML解析、数据提取以及Excel文件的生成。以下将详细讲解这个过程涉及的关键知识点。 1. HTML...

    java实现 html转Excel

    在Java开发中,将HTML转换为Excel是一种常见的需求,特别是在数据导出或报告生成的场景下。本主题主要探讨如何利用Java技术实现这一功能。HTML作为一种网页标记语言,可以方便地展示复杂的数据结构,而Excel则提供了...

    使用java将office word pdf excel ppt文件转换成html文件

    对于Excel文件,我们可以使用Apache POI的`XSSFWorkbook`类。每个工作表可以被视为HTML表格,通过遍历单元格、行和列,将数据转换为HTML表格结构。 ### **3. 转换PowerPoint (pptx) 文件** Apache POI中的`...

    java将html文件生成word文件

    首先,`docx4j`是一个开源Java库,它支持创建、修改和转换Microsoft Office Open XML (OOXML)文件,如Word的.docx和Excel的.xlsx格式。这个库基于Java API,使得开发者能够利用Java进行复杂的文档处理工作,无需直接...

    java实现word、Excel、ppt文件转换成html格式

    把jacob.jar加载到工程里。 在C:\WINDOWS\system32;C:\Program Files\Java\jdk1.5.0_04\bin;C:\Program Files\Java\jdk1.5.0_04\jre\...OfficeToXML.java文件是实现代码。 我自己工程用到的代码,现共享出来给大家!

    Excel2html-纯java实现excel转html

    "Excel2html"项目就是专为此目的设计的,它提供了一个纯Java实现的解决方案,使得开发者能够方便地将Excel文件转换成HTML文件,保留原有的格式和样式。 首先,我们要理解Excel文件和HTML文件的本质区别。Excel是...

    java POI完整示例,POI将word转HTML,数据库倒出数据到Excel等

    2. **Java POI将Word转为HTML** 在这个示例中,我们可能利用POI的HWPF库来读取Word文档,然后将其内容转换成HTML格式。这在需要在网络上显示Word内容或者希望在网页上保持文档格式时非常有用。转换过程涉及解析Word...

    POI将文件转为html

    对于Excel文件(.xls或.xlsx)的转换,POI提供了HSSFWorkbook(针对Excel 2003及以下版本)和XSSFWorkbook(针对Excel 2007及以上版本)类。开发者可以创建一个工作簿对象,然后遍历每个工作表和单元格,将它们的...

    Java利用POI将office转成HTML

    Apache POI是Java社区开发的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Word(.doc/.docx)、Excel(.xls/.xlsx)等。 首先,让我们深入了解Java中的POI库。POI提供了HSSF和XSSF两个API,分别用于...

    java把文档对象转为html

    在Java编程环境中,将文档对象转换为HTML是一种常见的需求,特别是在处理各种格式的文档时,如PDF、Word、Excel等。这种转换可以帮助我们在线展示文档内容或者将其集成到Web应用中。以下是一些关于如何使用Java实现...

    POI修改word、excel、pdf、ppt文件属性如作者以及将其转成html

    2. **修改Excel文件属性**: - 使用`XSSFWorkbook`类加载`.xlsx`文件。 - 访问`XSSFWorkbook.getPackageProperties()`获取`PackageProperties`对象。 - 调用`setCreator("Your Author Name")`设置创建者属性。 3...

    java office文档转为html

    Excel文件(.xls或.xlsx)的处理同样依赖于Apache POI,但这次使用SXSSF(Streaming Usermodel API)或XSSF(XML Spreadsheet)API。Excel表格可以被解析为行和列,然后转换成HTML表格。 PDF文件的转换相对复杂,...

    java html转换word

    Apache POI是Java库,专门用于处理Microsoft Office格式的文件,如Word(.doc和.docx)、Excel(.xls和.xlsx)等。在这个小例子中,我们将探讨如何使用Apache POI将HTML转换为Word文档。 首先,我们需要了解Apache ...

    Android通过POI完美解析Excel.xls xlsx成html编译前jar包

    本文将详细介绍如何在Android中使用POI库来解析Excel文件,并将其转换为HTML格式,以及如何处理相关的编译问题。 首先,POI是一个开源项目,由Apache软件基金会维护,它提供了API来创建、修改和读取Microsoft ...

    java office转为html

    Java Office转为HTML就是这样的一个需求,它涉及到Java编程语言以及与Microsoft Office格式(如.doc、.docx、.ppt、.pptx等)的交互,并最终将这些文件转换成HTML格式。这种转换可以方便网页展示、在线预览或者简化...

    基于poi实现word/excel转换为HTML(且兼容.doc.docx.xls.xlsx)

    本教程将深入探讨如何使用Apache POI库来实现这些文件向HTML的转换,以实现跨平台和浏览器的兼容性。 Apache POI 提供了HSSF和XSSF两个API,分别用于读写旧版的BIFF8格式(.xls)和新的OOXML格式(.xlsx)。对于...

    java技术结合poi jar包将wrod转为html 完整工程实战

    在这个“java技术结合poi jar包将word转为html 完整工程实战”项目中,我们将深入探讨如何使用Java和Apache POI将Word文档转换为HTML格式,同时支持doc、docx以及Excel文件。 首先,Apache POI是Java社区开发的一个...

    Excel表格生成PDF文件

    例如,`pandas`库可以用来读取和处理Excel文件,`pdfkit`或`weasyprint`库可以将HTML转换为PDF。通常,我们需要指定Excel文件的路径,以及要转换的特定sheet的名称。以下是一个简单的Python示例: ```python import...

    java实现office、wps转pdf,pdf转word

    在Java中,可以使用Apache POI库来处理Microsoft Office的文件(如Word、Excel和PowerPoint),而Kingsoft WPS也有相应的API接口供开发者使用。Apache POI提供了对Office文件的低级别访问,允许读取和写入文件内容。...

    java poi把word文档转化为html,支持doc。

    Java POI库是一个强大的工具,专门用于处理Microsoft Office格式的文件,包括Word(.doc和.docx)文档。在这个特定的场景中,我们利用POI将Word文档转换为HTML格式,以便于在网页上展示或者进行其他Web相关的操作。...

Global site tag (gtag.js) - Google Analytics