文档库 最新最全的文档下载
当前位置:文档库 › Ext4.1.1a导出Excel

Ext4.1.1a导出Excel

Ext4.1.1a导出Excel
Ext4.1.1a导出Excel

Ext4.1.1a实现Excel导出

做应用时我们总会遇到这样的问题既导出Excel表格。如果前台我们使用Ext我们该如何做呢?首先实现Excel导出有这么两类:

1.后台生成

2.前台直接打印

本文就第二类来谈一谈Ext4.1.1的具体实现思路:

1.遍历gridPanel的store取的每一行每一列的数据

2.将数据用xml格式包装成字符串(例如:

3.将字符串转换为Base64编码(假设存入变量base64Code)

4.拼凑url,var url='data:application/vnd.ms-excel;base64,'+base64Code

5.通过执行window.location = url完成下载;

通过以上思路完成了Exporter2Excel-all.js封装好了大部分功能,运行效果如图:

Exporter2Excel-all.js介绍与用法:

功能:通过ExtJs导出gridPanel当前页面的内容。

支持的浏览器:360极速浏览器,谷歌浏览器

用法(首先要导入Exporter2Excel-all.js):

通过创建button增加事件处理函数:

function() {

var url = getExcelUrl.getExcelUrl(grid, "meng");

window.location = url;

}

完成Excel导出。

例如:

var menuPanel = Ext.create("Ext.panel.Panel", {

region :'south',

title :' ',

width : 1000,

buttons : [{

width : 250,

xtype :'button',

text : '打印',

handler :function() {

var url = getExcelUrl.getExcelUrl(grid, "meng");

window.location = url;

}

}]

});

当“打印”按钮被点击时就会触发事件处理函数,从而完成下载。

Exporter2Excel-all.js内容如下:

var getExcelUrl = (function() {

//Base64编码转换函数,用法Base64.encode(string)

var Base64 = (function() {

// private property

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

// private method for UTF-8 encoding

function utf8Encode(string) {

string = string.replace(/\r\n/g, "\n");

var utftext = "";

for (var n = 0; n

var c = string.charCodeAt(n);

if (c < 128) {

utftext += String.fromCharCode(c);

} elseif ((c > 127) && (c < 2048)) {

utftext += String.fromCharCode((c >> 6) | 192);

utftext += String.fromCharCode((c & 63) | 128);

} else {

utftext += String.fromCharCode((c >> 12) | 224);

utftext += String.fromCharCode(((c >> 6) & 63) | 128);

utftext += String.fromCharCode((c & 63) | 128);

}

}

return utftext;

}

// public method for encoding

return {

// This was the original line, which tries to use Firefox's built in

// Base64 encoder, but this kept throwing exceptions....

// encode : (typeofbtoa == 'function') ? function(input) { return

// btoa(input); } : function (input) {

encode :function(input) {

var output = "";

var chr1, chr2, chr3, enc1, enc2, enc3, enc4;

var i = 0;

input = utf8Encode(input);

while (i

chr1 = input.charCodeAt(i++);

chr2 = input.charCodeAt(i++);

chr3 = input.charCodeAt(i++);

enc1 = chr1 >> 2;

enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);

enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);

enc4 = chr3 & 63;

if (isNaN(chr2)) {

enc3 = enc4 = 64;

} elseif (isNaN(chr3)) {

enc4 = 64;

}

output = output + keyStr.charAt(enc1) +

keyStr.charAt(enc2)

+ keyStr.charAt(enc3) + keyStr.charAt(enc4);

}

return output;

}

};

})();

var getType = (function() {

return {

getType :function(value) {

var type = Ext.type(value);

var result = "";

switch (type) {

case"number" :

result = "Number";

break;

case"int" :

result = "Number";

break;

case"float" :

result = "Number";

break;

case"bool" :

case"boolean" :

result = "String";

break;

case"date" :

result = "DateTime";

break;

default :

result = "String";

break;

}

return result;

}

};

})();

var getClass = (function() {

return {

getClass :function(value) {

var type = Ext.type(value);

var result = "";

switch (type) {

case"number" :

result = "float";

break;

case"int" :

result = "int";

break;

case"float" :

result = "float";

break;

case"bool" :

case"boolean" :

result = "";

break;

case"date" :

result = "date";

break;

default :

result = "";

break;

}

return result;

}

};

})();

var storeToXml = (function() {

return {

storeToXml :function(gird, title) {

var store = gird.store;

var count = store.getCount();

var columns = grid.columns;

var temp = '';

var headerXml = '

ss:MergeAcross="'

+ (columns.length - 1)

+ '">'

+ ''

+ title

+ ''

+ ''

+ '';

temp += '' + ''

+ '' + headerXml

+ '';

temp += '';

for (var k = 0; k

temp +=

'';

temp += columns[k].text;

temp += '';

}

temp += '';

for (var i = 0; i< count; i++) {

var cellClass = (i& 1) ? 'odd' : 'even';

var model = store.getAt(i);

var fields = model.fields;

temp += '';

for (var j = 0; j

var name = columns[j].dataIndex;

var value = model.get(name);

temp += '

+ getClass.getClass(value)

+ '">

+ getType.getType(value) + '">';

if (getType.getType(value) == 'DateTime') {

var date = Ext.util.Format.date(value, 'Y-m-d');

temp += date;

} else {

temp += value;

}

temp += '';

}

temp += '';

}

temp += '';

temp += '';

var main = ''

+

'

xmlns:o="urn:schemas-microsoft-com:office:office">'

+ ''

+ 'title111111111111111111111'

+ ''

+ ''

+ ''

+ 100

+ ''

+ ''

+ 500

+ ''

+

'False'

+ 'False'

+ ''

+ ''

+ ''

+ '

/>'

+ ''

+ ''

+ '

ss:LineStyle="Continuous" ss:Position="Top" />'

+ '

ss:LineStyle="Continuous" ss:Position="Bottom" />'

+ '

ss:LineStyle="Continuous" ss:Position="Left" />'

+ '

ss:LineStyle="Continuous" ss:Position="Right" />'

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ '

ss:Horizontal="Center" />'

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''

+ ''+ ''

+ ''

+ ''

+ '' + '' + temp

+ '';

return main;

}

};

})();

return {

getExcelUrl :function(inputGrid, inputTitle) {

var content = storeToXml.storeToXml(inputGrid, inputTitle);

var url = 'data:application/vnd.ms-excel;base64,'

+ Base64.encode(content);

return url;

}

};

})();

excel导入导出通用方法

1.package https://www.wendangku.net/doc/f5820208.html,mon.utils; 2.import java.io.OutputStream; 3.import java.util.List; 4.import javax.servlet.http.HttpServletResponse; 5.import org.apache.struts2.ServletActionContext; 6.import https://www.wendangku.net/doc/f5820208.html,ng.reflect.Field; 7. 8.import jxl.Workbook; 9.import jxl.format.Alignment; 10.import jxl.format.Border; 11.import jxl.format.BorderLineStyle; 12.import jxl.format.VerticalAlignment; 13.import https://www.wendangku.net/doc/f5820208.html,bel; 14.import jxl.write.WritableCellFormat; 15.import jxl.write.WritableFont; 16.import jxl.write.WritableSheet; 17.import jxl.write.WritableWorkbook; 18./*** 19. * @author lsf 20. */ 21.public class ExportExcel { 22./*************************************************************************** 23. * @param fileName EXCEL文件名称 24. * @param listTitle EXCEL文件第一行列标题集合 25. * @param listContent EXCEL文件正文数据集合 26. * @return 27. */ 28.public final static String exportExcel(String fileName,String[] Title, List listConte nt) { 29. String result="系统提示:Excel文件导出成功!"; 30.// 以下开始输出到EXCEL 31.try { 32.//定义输出流,以便打开保存对话框______________________begin 33. HttpServletResponse response=ServletActionContext.getResponse(); 34. OutputStream os = response.getOutputStream();// 取得输出流 35. response.reset();// 清空输出流 36. response.setHeader("Content-disposition", "attachment; filename="+ new String(fileN ame.getBytes("GB2312"),"ISO8859-1")); 37.// 设定输出文件头 38. response.setContentType("application/msexcel");// 定义输出类型 39.//定义输出流,以便打开保存对话框_______________________end 40. 41./** **********创建工作簿************ */ 42. WritableWorkbook workbook = Workbook.createWorkbook(os);

.NET页面数据导出excel表方法

public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); string colHeaders= "", ls_item=""; int i=0; //定义表对象与行对像,同时用DataSet对其值进行初始化 DataTable dt=ds.Tables[0]; DataRow[] myRow=dt.Select(""); // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件if(typeid=="1") { //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符for(i=0;i colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach(DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for(i=0;i ls_item +=row[i].ToString() + "\t"; ls_item += row[i].ToString() +"\n"; //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item=""; } } else { if(typeid=="2") { //从DataSet中直接导出XML数据并且写到HTTP输出流中 resp.Write(ds.GetXml()); } } //写缓冲区中的数据到HTTP头文件中 resp.End(); }

C# 导出Excel 表

using System; using System.Collections.Generic; using https://www.wendangku.net/doc/f5820208.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; using System.IO; namespace ExcelTest { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } string[] ExcelColumTitle ={ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; int[] ExcelColumWidth ={10,15,15,12,12,12,20 };//各列宽度 private void btnOk_Click(object sender, EventArgs e) { this.Enabled = false;

Excel.Application excelKccx = new Excel.Application();//创建excel对象 excelKccx.Workbooks.Add(true);//创建excel工作薄 int row = 2; //把数据表的各个信息输入到excel表中 for (int i = 0; i < dataGridView1.Columns.Count; i++)//取字段名 { excelKccx.Cells[1, i + 1] = dataGridView1.Columns[i].Name.ToString(); } for (int i = 0; i < dataGridView1.Rows.Count; i++)//取记录值 { for (int j = 0; j < dataGridView1.Columns.Count; j++) { excelKccx.Cells[row, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } row++; } for (int i = 0; i < dataGridView1.Columns.Count; i++) { excelKccx.get_Range(ExcelColumTitle[i]+(i+1), Type.Missing).ColumnWidth =ExcelColumWidth[i] ; //宽度设置 } for (int i = 0; i <= dataGridView1.Rows.Count; i++) { excelKccx.get_Range("A" + (i + 1), Type.Missing).RowHeight = 14.25; //高度设置 } excelKccx.Visible = true;//使excel可见*/ } private void frmMain_Load(object sender, EventArgs e) { List list = new List(); string[] tempArray = Directory.GetFileSystemEntries(@"new\"); for (int i = 0; i < tempArray.Length; i++) { string tempLine = ""; string tempAll = ""; string tempA = "";//编号 string tempB = "";//所属人 string tempC = "";//概览

DataGrid导出EXCEL的几个方法(WebControl)

DataGirdμ?3?EXCELμ?????·?·¨£¨WebControl£? using System; using System.Data; using System.Text; using System.Web; using System.Web.UI; using System.Diagnostics; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Collections; namespace bookstore { ///

/// myExcel μ??aòa?μ?÷?£ /// public class myExcel { public myExcel() { } /// /// ??DATAGRIDμ?3??aEXCEL???t·?·¨ò?, /// 2?êyê?:òaμ?3?μ?DATAGRIDμ?IDoíòa±£′???à′μ?EXCEL???t?? /// /// page /// datagrid /// filename private void OutExcel(Page myPage,DataGrid dg,string name) { HttpResponse Response; Response=myPage.Response; string name1="attachment;filename="+name+".xls"; dg.Visible=true;

html导出excel的方法(简单)

html导出excel的方法(简单) 在html实现打印和导出excel的实现: 2006/11/05 01:54 P.M. 在所要打印和导如的EXCES的table 加个如 id = "PrintA" 在打印按纽上注册监听如:onclick="javascript:AllAreaWord(); 在加上如下内容: