HTML TABLE 转换成Excel多Sheet,C#(补充版)

合集下载

纯JS将table表格导出到excel的方法

纯JS将table表格导出到excel的方法

纯JS将table表格导出到excel的⽅法html<div ><button type="button" onclick="getXlsFromTbl('tableExcel','myDiv')">IE导出Excel⽅法</button><button type="button" onclick="method5('tableExcel')">Chrome导出Excel</button></div><div id="myDiv"><table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"><tr><td colspan="5" align="center">html 表格导出到Excel</td></tr><tr><td>列标题1</td><td>列标题2</td><td>类标题3</td><td>列标题4</td><td>列标题5</td></tr><tr><td>aaa</td><td>bbb</td><td>ccc</td><td>ddd</td><td>eee</td></tr><tr><td>AAA</td><td>BBB</td><td>CCC</td><td>DDD</td><td>EEE</td></tr><tr><td>FFF</td><td>GGG</td><td>HHH</td><td>III</td><td>JJJ</td></tr></table></div>js<script language="JavaScript" type="text/javascript">//IE⽅法function getXlsFromTbl(inTblId, inWindow){try {var allStr = "";var curStr = "";if (inTblId != null && inTblId != "" && inTblId != "null") {curStr = getTblData(inTblId, inWindow);}if (curStr != null) {allStr += curStr;}else {alert("你要导出的表不存在");return;}var fileName = getExcelFileName();doFileExport(fileName, allStr);}catch(e) {alert("导出发⽣异常:" + + "->" + e.description + "!");}}function getTblData(inTbl, inWindow) {var rows = 0;var tblDocument = document;if (!!inWindow && inWindow != "") {if (!document.all(inWindow)) {return null;}else {tblDocument = eval(inWindow).document;}}var curTbl = tblDocument.getElementById(inTbl);var outStr = "";if (curTbl != null) {for (var j = 0; j < curTbl.rows.length; j++) {for (var i = 0; i < curTbl.rows[j].cells.length; i++) {if (i == 0 && rows > 0) {outStr += " t";rows -= 1;}outStr += curTbl.rows[j].cells[i].innerText + "t";if (curTbl.rows[j].cells[i].colSpan > 1) {for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) { outStr += " t";}}if (i == 0) {if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {rows = curTbl.rows[j].cells[i].rowSpan - 1;}}}outStr += "rn";}}else {outStr = null;alert(inTbl + "不存在 !");}return outStr;}function getExcelFileName() {var d = new Date();var curYear = d.getYear();var curMonth = "" + (d.getMonth() + 1);var curDate = "" + d.getDate();var curHour = "" + d.getHours();var curMinute = "" + d.getMinutes();var curSecond = "" + d.getSeconds();if (curMonth.length == 1) {curMonth = "0" + curMonth;}if (curDate.length == 1) {curDate = "0" + curDate;}if (curHour.length == 1) {curHour = "0" + curHour;}if (curMinute.length == 1) {curMinute = "0" + curMinute;}if (curSecond.length == 1) {curSecond = "0" + curSecond;}var fileName = "table" + "_" + curYear + curMonth + curDate + "_"+ curHour + curMinute + curSecond + ".csv";return fileName;}function doFileExport(inName, inStr) {var xlsWin = null;if (!!document.all("glbHideFrm")) {xlsWin = glbHideFrm;}else {var width = 6;var height = 4;var openPara = "left=" + (window.screen.width / 2 - width / 2)+ ",top=" + (window.screen.height / 2 - height / 2)+ ",scrollbars=no,width=" + width + ",height=" + height;xlsWin = window.open("", "_blank", openPara);}xlsWin.document.write(inStr);xlsWin.document.close();xlsWin.document.execCommand('Saveas', true, inName);xlsWin.close();}//Chrome⽅法var idTmr;function getExplorer() {var explorer = erAgent ;//ieif (explorer.indexOf("MSIE") >= 0) {return 'ie';}//firefoxelse if (explorer.indexOf("Firefox") >= 0) {return 'Firefox';}//Chromeelse if(explorer.indexOf("Chrome") >= 0){return 'Chrome';}//Operaelse if(explorer.indexOf("Opera") >= 0){return 'Opera';}//Safarielse if(explorer.indexOf("Safari") >= 0){return 'Safari';}}function method5(tableid) {if(getExplorer()=='ie'){var curTbl = document.getElementById(tableid);var oXL = new ActiveXObject("Excel.Application");var oWB = oXL.Workbooks.Add();var xlsheet = oWB.Worksheets(1);var sel = document.body.createTextRange();sel.moveToElementText(curTbl);sel.select();sel.execCommand("Copy");xlsheet.Paste();oXL.Visible = true;try {var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls"); } catch (e) {print("Nested catch caught " + e);} finally {oWB.SaveAs(fname);oWB.Close(savechanges = false);oXL.Quit();oXL = null;idTmr = window.setInterval("Cleanup();", 1);}}else{tableToExcel(tableid)}}function Cleanup() {window.clearInterval(idTmr);CollectGarbage();}var tableToExcel = (function() {var uri = 'data:application/vnd.ms-excel;base64,',template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },format = function(s, c) {return s.replace(/{(\w+)}/g,function(m, p) { return c[p]; }) }return function(table, name) {if (!table.nodeType) table = document.getElementById(table)var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}window.location.href = uri + base64(format(template, ctx))}})()</script>到此这篇关于纯JS将table表格导出到excel的⽅法的⽂章就介绍到这了,更多相关js table表格导出excel内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

将文本文件转换为excel文档的方法

将文本文件转换为excel文档的方法

将文本文件转换为excel文档的方法随着信息化时代的到来,数据处理和管理已经成为各行各业工作的重要部分。

在处理数据时,Excel作为一种常用的电子表格软件,被广泛应用于数据整理和分析之中。

然而,在实际工作中,有时我们会遇到将文本文件转换为Excel文档的需求。

本文将介绍几种常用的方法,帮助读者将文本文件转换为Excel文档。

1. 手动复制粘贴最简单的方法莫过于手动复制粘贴。

首先打开文本文件,选择需要转换的内容,使用Ctrl + C快捷键进行复制,然后打开Excel文档,使用Ctrl + V快捷键进行粘贴。

这种方法简单直接,适用于少量数据的转换。

但是对于大量数据来说,手动复制粘贴的效率就显得不足了。

2. 导入功能Excel提供了多种导入功能,可以帮助用户将文本文件转换为Excel文档。

其中,最常用的方法是使用“数据”选项卡中的“从文本/CSV”命令。

用户可以依次点击“数据”选项卡、选择“获取外部数据”和“从文本”命令,然后按提示选择需要导入的文本文件,即可将文本文件导入到Excel中。

还可以使用“文本导入向导”来处理一些特殊格式的文本文件。

这种方法适用于各类文本文件的转换,且可以自定义数据的格式和排列方式。

3. 使用转换工具除了Excel自带的导入功能,还可以借助一些专门的转换工具来将文本文件转换为Excel文档。

有一些上线转换全球信息站和软件可以帮助用户将各类格式的文本文件转换为Excel文档。

用户只需要上传需要转换的文本文件,选择转换格式为Excel,即可轻松完成转换。

这种方法适用于需要批量处理、以及处理特殊格式的文本文件。

4. 编程自动化如果以上方法无法满足需求,还可以考虑使用编程语言来进行自动化处理。

使用Python语言中的pandas库可以帮助用户读取文本文件,并将其转换为Excel文档。

这种方法适用于大规模数据的处理,且可以实现高度自定义的数据处理需求。

将文本文件转换为Excel文档的方法有多种,用户可以根据自己的需求和情况选择合适的方法。

网页数据如何简单导出excel

网页数据如何简单导出excel

网页数据如何简单导出excel在浏览网页时,遇到我们需要的网页数据时,如文字、图片等,如何能简单的导出到Excel 中,方便在本地电脑中查看和编辑呢?当然是有办法的啦!下面就为大家介绍几种简单快速的将网页数据导出到Excel的方法,大家可以灵活运用。

一、通过浏览器导出网页数据具体操作:打开某网页后,右键点击网页空白处,在下拉列表中选择“另存为”,然后在弹出的保存窗口中选择保存类型为“网页全部”。

选择保存位置后确定,保存后就会自动保存两个文件,一个是网址,另一个是保存网页内容元素。

如何导出网页数据,以赶集网采集为例图1二、通过网页数据采集器导出网页数据先通过网页数据采集器,将网页数据采集下来,然后再导出为需要的格式即可。

本文使用的是操作简单、功能强大的八爪鱼采集器。

以下是一个八爪鱼采集并导出网页数据的完整示例。

示例中采集的是赶集网上房产-商铺-深圳-南山分类下的所有商铺信息。

示例网站:/fang6/nanshan/步骤1:创建采集任务1)进入主界面,选择“自定义模式”如何导出网页数据,以赶集网采集为例图22)将要采集的网址URL,复制粘贴到网址输入框中,点击“保存网址”如何导出网页数据,以赶集网采集为例图3步骤2:创建翻页循环1)在页面右上角,打开“流程”,以展现出“流程设计器”和“定制当前操作”两个板块。

将页面下拉到底部,点击“下一页”按钮,在右侧的操作提示框中,选择“循环点击下一页”如何导出网页数据,以赶集网采集为例图4步骤3:创建列表循环1)移动鼠标,选中页面里的第一个商铺链接。

选中后,系统会自动识别页面里的其他相似链接。

在右侧操作提示框中,选择“选中全部”如何导出网页数据,以赶集网采集为例图52)选择“循环点击每个链接”,以创建一个列表循环如何导出网页数据,以赶集网采集为例图6步骤4:提取商铺信息1)在创建列表循环后,系统会自动点击第一个商铺链接,进入商铺详细信息页。

点击需要的字段信息,在右侧的操作提示框中,选择“采集该元素的文本”如何导出网页数据,以赶集网采集为例图72)字段信息选择完成后,选中相应的字段,可以进行字段的自定义命名。

HTML跨多行跨多列的表格

HTML跨多行跨多列的表格

HTML跨多行跨多列的表格上节所示的表格比较简单,如果我要插入一张图片,并且要占4个单元的空间,那怎么办?这就要用到跨多行跨多列的表格,本节就开始讲解如何实现把多个单元格合并成一个单元格。

本节单词记忆:属性 1.cospan 2.rowspan网页学习网提示:html语言非常简单,不需要逻辑理解,而绝大部分朋友觉得它难以掌握,90%的原因在于英语单词不过关,所以每节记忆几个单词是非常有必要的。

一、什么是跨多行跨多列的表格有时可能要将多行或多列合并成一个单元格,即可以创建跨多列的行,或创建跨多行的列。

colspan属性用于创建跨多列的单元格,rowspan属性用于创建跨多行的单元格。

要实现如图1所示的跨多行跨多列表格,怎么办?不急,我们先来看看跨多列的表格是如何实现的。

图1 跨多行跨多列的表格二、跨多列的表格跨多列的表格是单元格在水平方向上跨多列。

语法:创建跨多列的表格基本语法:<TABLE><TR><TD colspan="所跨列数">单元格内容</TD></TR></TABLE>下面通过示例1来说明colspan这一属性的用法。

示例1:<HTML><HEAD><TITLE>跨多列的表格</TITLE></HEAD><BODY><TABLE border="2"><TR><TD colspan="3">学生成绩表</TD><!--设置单元格水平跨3列,3是单元格所跨列数,而不是像素数--></TR><TR><TD >英语</TD><TD >数学</TD><TD >语文</TD></TR><TR><TD >95</TD><TD>98</TD><TD>89</TD></TR></TABLE></BODY></HTML>这里,将第一行单元格在水平方向上所跨的列数设为3,因为表格共包括3列,所以第一行只有一个单元格,运行效果如图2所示。

htmltabletoexcel用法

htmltabletoexcel用法

htmltabletoexcel用法htmltabletoexcel用法是一种将HTML表格转换为Excel文件的方法。

通过使用这个方法,可以将网页上的表格数据直接导出为Excel文件,方便保存和处理数据。

要使用htmltabletoexcel,需要首先引入相关的JavaScript库。

你可以在网上搜索htmltabletoexcel的代码和文件,并将其下载到你的项目中。

一旦你引入了htmltabletoexcel的代码,就可以在你的HTML页面上使用它了。

在需要将表格导出为Excel的地方,你可以添加一个按钮或者其他触发事件的元素,并在其点击事件中调用htmltabletoexcel方法。

例如,下面是一个简单的示例代码,展示了如何使用htmltabletoexcel来将HTML表格导出为Excel文件:```html<!DOCTYPE html><html><head><title>HTML Table to Excel</title><script src="path/to/htmltabletoexcel.js"></script></head><body><table id="myTable"><thead><tr><th>姓名</th><th>年龄</th><th>性别</th></tr></thead><tbody><tr><td>小明</td><td>20</td><td>男</td></tr><tr><td>小红</td><td>22</td><td>女</td></tr></tbody></table><button onclick="exportTableToExcel('myTable', 'excel')">导出为Excel</button> <script>function exportTableToExcel(tableID, filename = ''){var downloadLink;var dataType = 'application/vnd.ms-excel';var tableSelect = document.getElementById(tableID);var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20'); filename = filename?filename+'.xls':'excel_data.xls';downloadLink = document.createElement('a');document.body.appendChild(downloadLink);if(navigator.msSaveOrOpenBlob){var blob = new Blob(['\ufeff', tableHTML], {type: dataType});navigator.msSaveOrOpenBlob(blob, filename);}else{downloadLink.href = 'data:' + dataType + ', ' + tableHTML; downloadLink.download = filename;downloadLink.click();}}</script></body></html>```在上面的例子中,我们首先引入htmltabletoexcel.js文件,然后在表格下方添加了一个按钮,并在其点击事件中调用了exportTableToExcel方法,将表格导出为Excel文件。

JSP页面中导出Excel文件及其中文乱码的解决办法

JSP页面中导出Excel文件及其中文乱码的解决办法

JSP页面‎中导出Ex‎c el文件‎及其中文乱‎码的解决办‎法Web‎应用导出E‎x cel报‎表的简单实‎现(HTM‎L)‎在Web应‎用中,很多‎数据经常要‎导出成Ex‎c el文档‎。

用专门的‎生成真正的‎E xcel‎文档的方式‎比较复杂,‎不太好用。

‎所以经常用‎一种简单的‎方式来实现‎,即将报表‎保存为HT‎M L格式,‎然后用Ex‎c el打开‎。

实现方‎式:第一‎步,用JS‎P实现HT‎M L版本的‎报表第二‎步,在该J‎S P页面头‎部设置re‎s pons‎e的Con‎t entT‎y pe为E‎x cel格‎式<%‎resp‎o nse.‎s etCo‎n tent‎T ype(‎"appl‎i cati‎o n/vn‎d.ms-‎e xcel‎;char‎s et=G‎B K");‎%>‎中文问题‎:查看源‎代码时发现‎J SP文件‎中写死的中‎文为乱码,‎则在JSP‎文件头部添‎加一行<‎%@ pa‎g e co‎n tent‎T ype=‎"text‎/html‎; cha‎r set=‎g b231‎2" %>‎查看源代‎码时发现文‎字为中文,‎但是用Ex‎c el打开‎为乱码则在‎<html‎>与<he‎a d>中加‎入<me‎t a ht‎t p-eq‎u iv="‎C onte‎n t-Ty‎p e" c‎o nten‎t="te‎x t/ht‎m l; c‎h arse‎t=GBK‎">用‎S ervl‎e t实现也‎是类似的处‎理方法。

‎实现样例‎:Test‎.jsp‎<%@ ‎p age ‎c onte‎n tTyp‎e="te‎x t/ht‎m l; c‎h arse‎t=GBK‎" %>‎<% re‎s pons‎e.set‎C onte‎n tTyp‎e("ap‎p lica‎t ion/‎v nd.m‎s-exc‎e l;ch‎a rset‎=GBK"‎); %>‎<HTM‎L><m‎e ta h‎t tp-e‎q uiv=‎"Cont‎e nt-T‎y pe" ‎c onte‎n t="t‎e xt/h‎t ml; ‎c hars‎e t=GB‎K"><‎h ead>‎<titl‎e>Tes‎t</ti‎t le><‎/head‎><bo‎d y><‎T ABLE‎bord‎e rCol‎o r=#1‎11111‎cell‎S paci‎n g=0 ‎c ellP‎a ddin‎g=2 w‎i dth=‎1200 ‎a lign‎=cent‎e r bo‎r der=‎1><T‎R><T‎D ali‎g n=mi‎d dle ‎w idth‎="10%‎" hei‎g ht=2‎0 row‎S pan=‎2>项目‎</TD>‎<TD ‎a lign‎=midd‎l e wi‎d th="‎2%" h‎e ight‎=20 r‎o wSpa‎n=2>计‎量单位 <‎/TD>‎<TD a‎l ign=‎m iddl‎e wid‎t h="4‎%" he‎i ght=‎20>满期‎赔付率 <‎/TD>‎</TR>‎</TA‎B LE>‎</bod‎y></‎H TML>‎Web应‎用导出Ex‎c el报表‎的简单实现‎(HTML‎)在We‎b应用中,‎很多数据经‎常要导出成‎E xcel‎文档。

JS导出Table为excel的三种可行方法

JS导出Table为excel的三种可行方法

JS导出Table为excel的三种可行方法[html] view plain copy1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"2."/TR/xhtml1/DTD/xhtml1-transitional.dtd">3.<html xmlns="/1999/xhtml">4.<head>5.<meta http-equiv="Content-Type"content="text/html; charset=gb2312"/>6.<title>WEB页面导出为EXCEL文档的方法</title>7.</head>8.<body>9.<table id="tableExcel"width="100%"border="1"cellspa cing="0"cellpadding="0">10.<tr>11.<td colspan="5"align="center">WEB页面导出为EXCEL文档的方法</td>12.</tr>13.<tr>14.<td>列标题1</td>15.<td>列标题2</td>16.<td>列标题3</td>17.<td>列标题4</td>18.<td>列标题5</td>19.</tr>20.<tr>21.<td>aaa</td>22.<td>bbb</td>23.<td>ccc</td>24.<td>ddd</td>25.<td>eee</td>26.</tr>27.<tr>28.<td>AAA</td>29.<td>BBB</td>30.<td>CCC</td>31.<td>DDD</td>32.<td>EEE</td>33.</tr>34.<tr>35.<td>FFF</td>36.<td>GGG</td>37.<td>HHH</td>38.<td>III</td>39.<td>JJJ</td>40.</tr>41.</table>42.<input type="button"onclick="javascript:method1('ta bleExcel');"value="第一种方法导入到EXCEL">43.<input type="button"onclick="javascript:method2('ta bleExcel');"value="第二种方法导入到EXCEL">44.<input type="button"onclick="javascript:getXlsFrom Tbl('tableExcel',null);"value="第三种方法导入到EXCEL">45.<SCRIPT LANGUAGE="javascript">46.function method1(tableid) {//整个表格拷贝到EXCEL 中47.var curTbl = document.getElementById(tableid);48.var oXL = new ActiveXObject("Excel.Application");49.//创建AX对象excel50.var oWB = oXL.Workbooks.Add();51.//获取workbook对象52.var oSheet = oWB.ActiveSheet;53.//激活当前sheet54.var sel = document.body.createTextRange();55.sel.moveToElementText(curTbl);56.//把表格中的内容移到TextRange中57.sel.select();58.//全选TextRange中内容59.sel.execCommand("Copy");60.//复制TextRange中内容61.oSheet.Paste();62.//粘贴到活动的EXCEL中63.oXL.Visible = true;64.//设置excel可见属性65.}66.function method2(tableid) //读取表格中每个单元到EXCEL中67.{68.var curTbl = document.getElementById(tableid);69.var oXL = new ActiveXObject("Excel.Application");70.//创建AX对象excel71.var oWB = oXL.Workbooks.Add();72.//获取workbook对象73.var oSheet = oWB.ActiveSheet;74.//激活当前sheet75.var Lenr = curTbl.rows.length;76.//取得表格行数77.for (i = 0; i <Lenr; i++)78.{79.var Lenc = curTbl.rows(i).cells.length;80.//取得每行的列数81.for (j = 0; j <Lenc; j++)82.{83.oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).i nnerText;84.//赋值85.}86.}87.oXL.Visible = true;88.//设置excel可见属性89.}90.function getXlsFromTbl(inTblId, inWindow) {91.try {92.var allStr = "";93.var curStr = "";94.//alert("getXlsFromTbl");95.if (inTblId != null && inTblId != "" && inTblId != "null" ) {96.curStr = getTblData(inTblId, inWindow);97.}98.if (curStr != null) {99.allStr += curStr;100.}101.else {102.alert("你要导出的表不存在!");103.return;104.}105.var fileName = getExcelFileName();106.doFileExport(fileName, allStr);107.}108.catch(e) {109.alert("导出发生异常:" + + "->" + e.description + "!");110.}111.}112.function getTblData(inTbl, inWindow) {113.var rows = 0;114.//alert("getTblData is " + inWindow);115.var tblDocument = document;116.if (!!inWindow && inWindow != "") {117.if (!document.all(inWindow)) {118.return null;119.}120.else {121.tblDocument = eval(inWindow).document;122.}123.}124.var curTbl = tblDocument.getElementById(inTbl);125.var outStr = "";126.if (curTbl != null) {127.for (var j = 0; j <curTbl.rows.length; j++) {128.//alert("j is " + j);129.for (var i = 0; i <curTbl.rows[j].cells.length; i++) {130.//alert("i is " + i);131.if (i == 0 && rows > 0) {132.outStr += " \t";133.rows -= 1;134.}135.outStr += curTbl.rows[j].cells[i].innerText + "\t";136.if (curTbl.rows[j].cells[i].colSpan > 1) {137.for (var k = 0; k <curTbl.rows[j].cells[i].colSpan - 1; k ++) {138.outStr += " \t";139.}140.}141.if (i == 0) {142.if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {143.rows = curTbl.rows[j].cells[i].rowSpan - 1;144.}145.}146.}147.outStr += "\r\n";148.}149.}150.else {151.outStr = null;152.alert(inTbl + "不存在!");153.}154.return outStr;155.}156.function getExcelFileName() {157.var d = new Date();158.var curYear = d.getYear();159.var curMonth = "" + (d.getMonth() + 1);160.var curDate = "" + d.getDate();161.var curHour = "" + d.getHours();162.var curMinute = "" + d.getMinutes();163.var curSecond = "" + d.getSeconds();164.if (curMonth.length == 1) {165.curMonth = "0" + curMonth;166.}167.if (curDate.length == 1) {168.curDate = "0" + curDate;169.}170.if (curHour.length == 1) {171.curHour = "0" + curHour;172.}173.if (curMinute.length == 1) {174.curMinute = "0" + curMinute;175.}176.if (curSecond.length == 1) {177.curSecond = "0" + curSecond;178.}179.var fileName = "leo_zhang" + "_" + curYear + curMont h + curDate + "_"180.+ curHour + curMinute + curSecond + ".csv";181.//alert(fileName);182.return fileName;183.}184.function doFileExport(inName, inStr) {185.var xlsWin = null;186.if (!!document.all("glbHideFrm")) {187.xlsWin = glbHideFrm;188.}189.else {190.var width = 6;191.var height = 4;192.var openPara = "left=" + (window.screen.width / 2 - width / 2)193.+ ",top=" + (window.screen.height / 2 - height / 2) 194.+ ",scrollbars=no,width=" + width + ",height=" + heig ht;195.xlsWin = window.open("", "_blank", openPara);196.}197.xlsWin.document.write(inStr);198.xlsWin.document.close();199.xlsWin.document.execCommand('Saveas', true, inNam e);200.xlsWin.close();201.}202.</SCRIPT>203.</body>204.</html>。

经典三种C#导入导出到EXCEL的方法(C#开发人员必备)

经典三种C#导入导出到EXCEL的方法(C#开发人员必备)

C#导入导出EXCEL------------阿秋笔记add by 2011-3-24注:本文中的所有案例全部测试通过,请放心使用!三大功能:1,导入:把EXCEL文件导入到对应的数据库表中2,导出:(1)把HTML页面直接导出到EXCEL;(2)把DataTable对象导出到EXCEL 环境:VS2005 + SQL SERVER 2005 Language:C#1,导入步骤:上传EXCEL文件,保存到服务器某一个文件夹下,然后解析的DataTable中,在分解插入到数据库表中实现代码:(1)前台,Default.aspx 放入一个上传控件FileUpload + 按钮控件Button代码:<asp:FileUpload ID="FU"runat="server"Width="595px"/><asp:Button ID="btnUpload"runat="server"Text="上传"OnClick="btnUpload_Click"/> (2)后台Default.asp.cs代码:-----按钮单击事件btnUpload_Clickprotected void btnUpload_Click(object sender, EventArgs e){if (this.FU.PostedFile == null || this.FU.PostedFile.FileName == "") //判断是否选择上载文件{this.RegisterStartupScript("1","alert('请选择上传的数据文件!');");return;}string m_ExtName =Path.GetExtension(TrimHtml(Path.GetFileName(this.FU.PostedFile.FileName))).ToLower();if ((m_ExtName.Replace(".", "") != "xls")){this.RegisterStartupScript("2","alert('请上传Execl类型文件!');");return;}string newname = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + m_ExtName;FU.PostedFile.SaveAs(Server.MapPath("~/xx/"+newname));string fPath = Request.PhysicalApplicationPath + "xx/" + newname;fPath = fPath.Replace("\\", "/");DataTable dt = ExcelToDS(fPath, "LAWUSER");bool IsSuccessful = true;string _errorRow = "";foreach (DataRow row in dt.Rows){if (row["姓名"].ToString().Trim().Equals("")){continue;}string id = row["编号"].ToString();string name = row["姓名"].ToString();string tel = row["联系电话"].ToString();string sql = "insert into AA values('" + id + "','" + name + "','" + tel + "')";try{int i = SqlHelper1.ExecuteNonQuery(sql);if (i > 0){this.RegisterStartupScript("4", "susccessfully");}else{ this.RegisterStartupScript("4","插入错误"); }}catch (Exception ex){this.RegisterStartupScript("3","alert('"+ex.Message+"');");}}}-----函数ExcelToDS,这里的ExtandName是指EXCEL中对应的Sheet1修改后的名称private DataTable ExcelToDS(string Path, string ExtandName){string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Path + ";"+ "Extended Properties='Excel 8.0;'";OleDbConnection conn = new OleDbConnection(strConn);conn.Open();string strExcel = "";OleDbDataAdapter myCommand = null;DataSet ds = null;strExcel = "select * from [" + ExtandName + "$]";myCommand = new OleDbDataAdapter(strExcel, strConn);ds = new DataSet();myCommand.Fill(ds, "table1");return ds.Tables[0];}-----对字符串操作函数TrimHtmlprivate string TrimHtml(string str){return str.Replace("&", "").Replace("<", "").Replace("'", "").Replace("\"","").Replace("\\", "");}(3)数据库表格式:CREATE TABLE [dbo].[AA]([id] [int] NOT NULL,[name] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL,[tel] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL,CONSTRAINT [PK_AA] PRIMARY KEY CLUSTERED([id] ASC)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY])ON [PRIMARY]注意表列与DataTable中的数据一一对应即可2,导出,将HTML导出到EXCEL,注:我这里是后台实现导出,也有用JS脚本导出的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
arrColIndex[i]=new Array(); for(j=0;j<nCol;j++){
arrColIndex[i][j] = 0; arrColWidth[j] = 0; //* } } for(i=0;i<oTR.length;i++){ sXML+='<Row>'; j=0; $(oTR[i]).children("th,td").each(function(){
arrColIndex[i][x]++; } j+=_sc; } } if (i > 0) { _b = false; while(arrColIndex[i][j]>0){ j++; _b = true; } if (_b) { sXML += ' ss:Index="' + (j + 1) + '"'; } } j++; sXML+=' ss:StyleID="s_col_head">'; sXML+='<Data ss:Type="String">'+$(this).text()+'</Data>'; sXML += '</Cell>\n'; }); sXML += '</Row>\n'; } //tbody
为便于说明,以下是页面中报表形式:
显示效果类似:
其中 report-content 有多个,每一个代表一张报表
导出后的结果
------------------------------------------------下面是 JS 文件-------------------------------------------------------jQuery(document).ready(function () {
sXML += ' ss:StyleID="' + _style + '"';
sXML += '>';
sXML += '<Data ss:Type="' + _type + '">' + $(this).text() + '</Data>';
sXML += '</Cell>\n';
j++;
});
sXML += '</Row>\n';
$("#id_iframe_download").load(function () { var sALL = ""; var i = 0; if (typeof (eval(this.contentWindow.do_download)) == "function") { //f_pop_waitting("正在处理数据..."); data_target.each(function () { sALL += toExcelXmlWorkSheet($(this)); }); this.contentWindow.focus(); this.contentWindow.do_download(sALL,$(".page-title h1").text()); //f_pop_waitting_close("处理结束..."); }
});
//footnotes
oReport.find("p.footnotes").each(function () {
if ($(this).text() != "") {
sXML += '<Row>\n';
sXML += '<Cell ss:MergeAcross="' + (nCol - 1) + '" ss:StyleID="footnotes"><Data
sXML+='<Cell '; var _sc=$(this).attr("rowspan");//跨行 if(typeof(_sc)=="string" && _sc!=""){
_sc = parseInt(_sc) - 1; if (_sc > 0) {
//alert("行 i:"+i+"*SC:"+_sc); sXML += ' ss:MergeDown="' + _sc + '"'; for (var x = i; x <= i + _sc; x++) {
return ""; } var sReport_h1=oReport.find("h1").text(); var sReport_h2=oReport.find("h2").text(); var sReport_notes_1=oReport.find("table.report-notes td:first").text(); var sReport_notes_2=oReport.find("table.report-notes td:last").text(); var nCol=oReport.find("table.report tbody tr:first").children().length; var i, j; var sXML = ""; sXML += '<Row>\n'; sXML += '<Cell ss:MergeAcross="' + (nCol - 1) + '" ss:StyleID="sTitle"><Data ss:Type="String">' + sReport_h1 + '</Data></Cell>\n'; sXML += '</Row>\n'; sXML += '<Row>\n'; sXML += '<Cel#43; (nCol - 1) + '" ss:StyleID="sSTitle"><Data ss:Type="String">' + sReport_h2 + '</Data></Cell>\n'; sXML += '</Row>\n'; sXML += '<Row>\n'; sXML += '<Cell ss:MergeAcross="' + (parseInt(nCol / 2)-1) + '" ss:StyleID="sNote1"><Data ss:Type="String">' + sReport_notes_1 + '</Data></Cell>\n'; sXML += '<Cell ss:MergeAcross="' + (parseInt((nCol+1) / 2)-1) + '" ss:StyleID="sNote2"><Data ss:Type="String">' + sReport_notes_2 + '</Data></Cell>\n'; sXML += '</Row>\n'; var arrColWidth = new Array();//列宽度 //thead var oTR=oReportBody.find("thead tr"); var arrColIndex = new Array();//表头格式矩阵 var _b = false; for(i=0;i<oTR.length;i++){
sXML += '<Cell'; var _sc=$(this).attr("colspan");//报表主体只处理跨列 if (typeof (_sc) == "string" && _sc != "") {
_sc = parseInt(_sc) - 1; if (_sc > 0) {
sXML += ' ss:MergeAcross="' + _sc + '"'; } } _val = $(this).text(); _val_len = _val.replace(/[^\x00-\xff]/g, '__').length+1;//长度,汉字两个 if (_val_len > arrColWidth[j]) { arrColWidth[j] = _val_len; } _class = $(this).attr("class"); if(typeof (_class) != "string"){ _class=""; } _type = _class.toUpperCase() == "NUMBER" ? "Number" : "String"; _style = (this.tagName.toUpperCase() == "TH") ? "s_row_head" : "s_data_" + (_class.toUpperCase() == "GTITLE" ? "gtitle" : _type);
相关文档
最新文档