NPOI分层导出
using NPOI.HSSF.UserModel; using NPOI.POIFS.FileSystem; using org.in2bits.MyXls; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Topevery.Basis.Config; using Topevery.Basis.Logic; using Topevery.DUM.Entity; namespace Topevery.DUM.Report.PublicCaseAnalysis { public partial class EvtSpread : BasePage { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { //txtStartDate.Text = string.Format("{0}-{1}-1", DateTime.Today.Year, DateTime.Today.Month); //txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Today); txtStartDate.Text = "2015-01-01"; txtEndDate.Text = "2016-08-01"; } AjaxPro.Utility.RegisterTypeForAjax(typeof(EvtSpread)); } /// <summary> /// 分布统计查询 /// </summary> /// <param name="evtPara"></param> /// <returns></returns> [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)] public static EvtSpreadData GetZxEvtSpreadData(SearchPara evtPara) { EvtSpreadData result = new EvtSpreadData(); //1.查出所有数据 BaseParameter para = new BaseParameter(); para.PageIndex = ; para.PageSize = int.MaxValue; string title = ""; //lblTitle.Text = string.Format("{0:yyyy-MM-01}至{1:MM-dd}{3}专项案件分布统计", DateTime.Today); if (!string.IsNullOrEmpty(evtPara.DateBegin)) { DateTime dtStart = DateTime.Now; if (DateTime.TryParse(evtPara.DateBegin, out dtStart)) { title += string.Format("{0:yyyy-MM-dd}—", dtStart); para.BeginDate = dtStart; } } if (!string.IsNullOrEmpty(evtPara.DateEnd)) { DateTime dtEnd = DateTime.Now; if (DateTime.TryParse(evtPara.DateEnd, out dtEnd)) { title += string.Format("{0:yyyy-MM-dd}", dtEnd); para.EndDate = dtEnd.AddDays().AddSeconds(-); } } title += "案件分布统计"; ; DataTable dt = QmcgLogic.EvtSearchList(para); if (dt != null) { recordCount = dt.Rows.Count; } StringBuilder StrbSprdHtm = new StringBuilder(); string strTableClass = "TUI-grid-list"; StrbSprdHtm.AppendFormat("<table class='{0}' ><colgroup ><col width='30px'><col width='120px' /><col/><col/></colgroup><tr><th>序号</th><th class='AeraName ui-th-column'>区域</th><th class='EvtCount ui-th-column'>案件数</th></tr>", strTableClass); //循环各个区域 Topevery.Basis.Entity.SysMapTreeCollection mapTreeColl = SysMapLogic.GetDefaultTree(); ) { foreach (Topevery.Basis.Entity.SysMapTree mapCity in mapTreeColl) { ; //市下面的区循环 foreach (Topevery.Basis.Entity.SysMapTree mapDist in mapCity.Child) { iDistCount++; string strDistTrStyle = "ui-widget-content jqgrow ui-row-ltr ui-priority-secondary"; == ) { strDistTrStyle = "ui-widget-content jqgrow ui-row-ltr"; } strDistTrStyle = string.Format("{0} {1}", Topevery.Basis.Config.MapTypeEnum.District, strDistTrStyle); ) { //int prbInDistCount = 0; int evtInDistCount = GetEvtCountByMap(dt, mapDist.ID, Topevery.Basis.Config.MapTypeEnum.District); // StrbSprdHtm.AppendFormat("<tr class='{2}' mapId='{3}'><td>{4}</td><td class='AeraName'><a class='TUI-link-btn fl-left' href='javascript:void(0);' onclick='showOrHideStreet(this);'><span class='ui-icon ui-icon-minus'></span></a><a href='javascript:mapPositions({3})'>{0}</a></td><td class='EvtCount'><a href='javascript:void(0);' onclick='showDetail(this,{3},13002)'>{1}</a></td></tr>", mapDist.Name, evtInDistCount, strDistTrStyle, mapDist.ID, iDistCount); ) { StrbSprdHtm.AppendFormat("<tr class='{0}_Out'><td></td><td colspan='2' border='0'>", MapTypeEnum.Street); StrbSprdHtm.AppendFormat("<table class='{0}'><colgroup ><col width='30px'><col width='120px' /><col/><col/></colgroup><tr><th>序号</th><th class='AeraName ui-th-column'>街道</th><th class='EvtCount ui-th-column'>案件数</th></tr>", strTableClass); ; //循环区下面的街道 foreach (Topevery.Basis.Entity.SysMapTree mapStreet in mapDist.Child) { string strStreetStyle = "ui-widget-content jqgrow ui-row-ltr ui-priority-secondary"; == ) { strStreetStyle = "ui-widget-content jqgrow ui-row-ltr"; } //int prbInStreetCount = 0; int evtInStreetCount = GetEvtCountByMap(dt, mapStreet.ID, Topevery.Basis.Config.MapTypeEnum.Street); ) { iStreetCount++; StrbSprdHtm.AppendFormat("<tr class='{2}_Inner {5}' mapId='{3}'><td>{6}</td><td class='AeraName'><a class='TUI-link-btn fl-left' href='javascript:void(0);' onclick='showOrHideCmn(this);'><span class='ui-icon ui-icon-plus'></span></a><a href='javascript:mapPositions({3})'>{0}</a></td><td class='EvtCount'><a href='javascript:void(0);' onclick='showDetail(this,{3},13003)'>{1}</a></td></tr><tr class='{4}_Out' style='display:none'><td></td><td colspan='2'>", mapStreet.Name, evtInStreetCount, MapTypeEnum.Street, mapStreet.ID, MapTypeEnum.Community, strStreetStyle, iStreetCount); StrbSprdHtm.AppendFormat("<table class='{0}'><colgroup><col width='30px'><col width='120px' /><col/><col/></colgroup><tr><th>序号</th><th class='AeraName ui-th-column'>社区</th><th class='EvtCount ui-th-column'>案件数</th></tr>", strTableClass); ; //循环街道下面的社区 foreach (Topevery.Basis.Entity.SysMapTree mapComn in mapStreet.Child) { //int prbInCmnCount = 0; int evtInCmnCount = GetEvtCountByMap(dt, mapComn.ID, Topevery.Basis.Config.MapTypeEnum.Community); ) { iCmnCount++; StrbSprdHtm.AppendFormat("<tr class='{2}_Inner' mapId='{3}'><td>{4}</td><td class='AeraName'><a href='javascript:mapPositions({3})'>{0}</a></td><td class='EvtCount'><a href='javascript:void(0);' onclick='showDetail(this,{3},13004)'>{1}</a></td></tr>", mapComn.Name, evtInCmnCount, MapTypeEnum.Community, mapComn.ID, iCmnCount); } } StrbSprdHtm.Append("</table></td></tr>"); } } StrbSprdHtm.Append("</table>"); } else { StrbSprdHtm.AppendFormat("<tr class='{0}_Out' style='display:none;'><td></td><td colspan='2' border='0'>", MapTypeEnum.Street); } StrbSprdHtm.Append("</td></tr>"); } } StrbSprdHtm.Append("</table>"); StrbSprdHtm.Append("</td></tr>"); } } StrbSprdHtm.Append("</table>"); result.SprHtmlResult = StrbSprdHtm.ToString(); result.Title = title; //ExportQueryService.SetQueryVal(ExportEnumKey, para); foreach (DataRow dr in dt.Rows) { try { Evt evt = new Evt(); evt.EvtId = Convert.ToInt64(dr["c_id"]); try { evt.AbsX = Convert.ToDouble(dr["c_abs_x"]); evt.AbsY = Convert.ToDouble(dr["c_abs_y"]); } catch { } try { evt.DistId = Convert.ToInt32(dr["c_map_district_id"]); evt.StreetId = Convert.ToInt32(dr["c_map_street_id"]); evt.CmnId = Convert.ToInt32(dr["c_map_community_id"]); } catch { } evt.Title = Convert.ToString(dr["c_title"]); //evt.Status = Convert.ToInt32(dr["c_status"]); result.ListEvt.Add(evt); } catch { } } return result; } /// <summary> /// 导出excel文件 /// </summary> /// <param name="reportTitle">标题</param> /// <param name="dt">数据源</param> /// <param name="columns">列名</param> /// <param name="filePath">文件路径</param> /// <param name="maxRow">一页显示最大记录数</param> public static void SingleExport(string reportTitle, string subTitle, DataTable dt, Dictionary<string, string> columns, string filePath, int maxRow) { int WorkSheetCount = Convert.ToInt32(Math.Ceiling(dt.Rows.Count * 1.0 / maxRow)); XlsDocument doc = new XlsDocument(); ; i < WorkSheetCount; i++) { Worksheet sheet = doc.Workbook.Worksheets.Add()); ; ; int currentMinRowIndex = i * maxRow; ; ) * maxRow + ) < dt.Rows.Count) currentMaxRowIndex = (i + ) * maxRow; else currentMaxRowIndex = dt.Rows.Count; //标题 if (!string.IsNullOrEmpty(reportTitle)) { rowIndex++; XF cellXF = doc.NewXF(); cellXF.VerticalAlignment = VerticalAlignments.Centered; cellXF.HorizontalAlignment = HorizontalAlignments.Centered; cellXF.Font.Height = * ; cellXF.Font.Bold = true; //cellXF.Pattern = 1;//设定单元格填充风格。如果设定为0,则是纯色填充 //cellXF.PatternBackgroundColor = Colors.EgaYellow;//填充的底色 //cellXF.PatternColor = Colors.Grey;//设定填充线条的颜色 sheet.Cells.Add(rowIndex, , reportTitle, cellXF); MergeArea area = , , , columns.Count); sheet.AddMergeArea(area); } //副标题 if (!string.IsNullOrEmpty(subTitle)) { rowIndex++; XF cellXF = doc.NewXF(); cellXF.VerticalAlignment = VerticalAlignments.Centered; cellXF.HorizontalAlignment = HorizontalAlignments.Centered; sheet.Cells.Add(rowIndex, , subTitle, cellXF); MergeArea area = , , , columns.Count); sheet.AddMergeArea(area); } //列头标题 rowIndex++; foreach (string colTitle in columns.Values) { colIndex++; XF cellXF = doc.NewXF(); cellXF.VerticalAlignment = VerticalAlignments.Centered; cellXF.HorizontalAlignment = HorizontalAlignments.Centered; cellXF.Font.Bold = true; cellXF.Pattern = ;//设定单元格填充风格。如果设定为0,则是纯色填充 cellXF.PatternBackgroundColor = Colors.Grey;//填充的底色 cellXF.TopLineColor = Colors.Black; cellXF.TopLineStyle = ; cellXF.BottomLineColor = Colors.Black; cellXF.BottomLineStyle = ; cellXF.LeftLineColor = Colors.Black; cellXF.LeftLineStyle = ; cellXF.RightLineColor = Colors.Black; cellXF.RightLineStyle = ; sheet.Cells.Add(rowIndex, colIndex, colTitle, cellXF); } //数据行 for (int j = currentMinRowIndex; j < currentMaxRowIndex; j++) { rowIndex++; colIndex = ; XF cellXF = doc.NewXF(); cellXF.VerticalAlignment = VerticalAlignments.Centered; cellXF.HorizontalAlignment = HorizontalAlignments.Centered; cellXF.TopLineColor = Colors.Black; cellXF.TopLineStyle = ; cellXF.BottomLineColor = Colors.Black; cellXF.BottomLineStyle = ; cellXF.LeftLineColor = Colors.Black; cellXF.LeftLineStyle = ; cellXF.RightLineColor = Colors.Black; cellXF.RightLineStyle = ; foreach (string colName in columns.Keys) { colIndex++; object v = dt.Rows[j][colName]; if (v is Int32 || v is Int16 || v is Int64 || v is Double || v is Single) { sheet.Cells.Add(rowIndex, colIndex, v == null || v == DBNull.Value ? "" : v, cellXF); } else { sheet.Cells.Add(rowIndex, colIndex, v == null || v == DBNull.Value ? "" : v.ToString(), cellXF); } } } } doc.FileName = Guid.NewGuid().ToString() + ".xls"; if (!string.IsNullOrEmpty(filePath)) { doc.Save(filePath); } else { string folder = HttpContext.Current.Server.MapPath("~/Templates"); try { foreach (string file in System.IO.Directory.GetFiles(folder)) { System.IO.FileInfo fi = new System.IO.FileInfo(file); ) { System.IO.File.Delete(file); } } } catch { } doc.Save(folder); System.Web.HttpContext.Current.Response.WriteFile("~/Templates/" + doc.FileName); } } public const string ExportEnumKey = ExportKey.Regional; public static int GetEvtCountByMap(DataTable evtData, int mapId, Topevery.Basis.Config.MapTypeEnum mapType) { //prbCount = 0; try { string filter = ""; switch (mapType) { case MapTypeEnum.District: filter = string.Format("[c_map_district_id]={0}", mapId); break; case MapTypeEnum.Street: filter = string.Format("[c_map_street_id]={0}", mapId); break; case MapTypeEnum.Community: filter = string.Format("[c_map_community_id]={0}", mapId); break; } //object oPrbCount = evtData.Compute("sum([c_count])", filter); //try //{ // prbCount = Convert.ToInt32(oPrbCount); //} //catch { } return evtData.Select(filter).Length; } catch { } ; } protected void Download_Click(object sender, EventArgs e) { ; BaseParameter para = new BaseParameter(); string title = ""; if (!string.IsNullOrEmpty(txtStartDate.Text)) { DateTime dtStart = DateTime.Now; if (DateTime.TryParse(txtStartDate.Text, out dtStart)) { title += string.Format("{0:yyyy-MM-dd}—", dtStart); para.BeginDate = dtStart; } } if (!string.IsNullOrEmpty(txtEndDate.Text)) { DateTime dtEnd = DateTime.Now; if (DateTime.TryParse(txtEndDate.Text, out dtEnd)) { title += string.Format("{0:yyyy-MM-dd}", dtEnd); para.EndDate = dtEnd.AddDays().AddSeconds(-); } } DataTable dt = QmcgLogic.EvtSearchList(para); if (dt != null) { recordCount = dt.Rows.Count; } List<string> subTitles = new List<string>(); Dictionary<string, string> cols = new Dictionary<string, string>(); DataTable dtnew = new DataTable("casetable"); dtnew.Columns.Add(new DataColumn("Id", typeof(Int32))); dtnew.Columns.Add(new DataColumn("Region", typeof(string))); dtnew.Columns.Add(new DataColumn("CaseNumber", typeof(Int32))); dtnew.Columns.Add("c_level"); dtnew.Columns.Add("c_parent_id"); DataRow dr; Topevery.Basis.Entity.SysMapTreeCollection mapTreeColl = SysMapLogic.GetDefaultTree(); ) { foreach (Topevery.Basis.Entity.SysMapTree mapCity in mapTreeColl) { ; ; //市下面的区循环 foreach (Topevery.Basis.Entity.SysMapTree mapDist in mapCity.Child) { id++; iDistCount++; ) { //区域案件数 int evtInDistCount = GetEvtCountByMap(dt, mapDist.ID, Topevery.Basis.Config.MapTypeEnum.District); dr = dtnew.NewRow(); dr["Id"] = mapDist.ID; dr["Region"] = mapDist.Name; dr["CaseNumber"] = evtInDistCount; dr[; dr[; dtnew.Rows.Add(dr); //街道 ; ) { foreach (Topevery.Basis.Entity.SysMapTree mapStreet in mapDist.Child) { id++; iStreetCount++; //案件数 int StreetCount = GetEvtCountByMap(dt, mapStreet.ID, Topevery.Basis.Config.MapTypeEnum.Street); dr = dtnew.NewRow(); dr["Id"] = mapStreet.ID; //dr["Id"] = iStreetCount; dr["Region"] = mapStreet.Name; dr["CaseNumber"] = StreetCount; dr[; dr["c_parent_id"] = mapDist.ID; dtnew.Rows.Add(dr); //社区 int evtInStreetCount = GetEvtCountByMap(dt, mapStreet.ID, Topevery.Basis.Config.MapTypeEnum.Street); ) { ; foreach (Topevery.Basis.Entity.SysMapTree mapComn in mapStreet.Child) { //案件数 int evtInCmnCount = GetEvtCountByMap(dt, mapComn.ID, Topevery.Basis.Config.MapTypeEnum.Community); ) { id++; iCmnCount++; dr = dtnew.NewRow(); dr["Id"] = mapComn.ID; //dr["Id"] = iCmnCount; dr["Region"] = mapComn.Name; dr["CaseNumber"] = evtInCmnCount; dr[; dr["c_parent_id"] = mapStreet.ID; dtnew.Rows.Add(dr); Dictionary<string, string> CaseColumns = new Dictionary<string, string>(); } } } } } } } } //----------------------- string filePath = System.IO.Path.Combine(Request.PhysicalApplicationPath, "tempFolder"); filePath = System.IO.Path.Combine(filePath, Guid.NewGuid().ToString() + ".xls"); HSSFWorkbook hssfWorkBook = new HSSFWorkbook(); HSSFSheet sheet1 = hssfWorkBook.CreateSheet("Sheet1") as HSSFSheet; using (FileStream file = new FileStream(filePath, FileMode.Create)) { hssfWorkBook.Write(file); } HSSFCellStyle _style = sheet1.Workbook.CreateCellStyle() as HSSFCellStyle; _style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER; _style.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER; _style.BorderBottom = NPOI.SS.UserModel.CellBorderType.THIN; _style.BottomBorderColor = ; _style.BorderLeft = NPOI.SS.UserModel.CellBorderType.THIN; _style.LeftBorderColor = ; _style.BorderRight = NPOI.SS.UserModel.CellBorderType.THIN; _style.RightBorderColor = ; _style.BorderTop = NPOI.SS.UserModel.CellBorderType.THIN; _style.TopBorderColor = ; DataRow[] drDists = dtnew.Select("c_level=1"); sheet1.CreateRow(); HSSFCell cell1 = sheet1.GetRow().CreateCell() as HSSFCell; HSSFCell cell2 = sheet1.GetRow().CreateCell() as HSSFCell; HSSFCell cell3 = sheet1.GetRow().CreateCell() as HSSFCell; cell1.SetCellValue("序号"); cell2.SetCellValue("区域"); cell3.SetCellValue("案件数"); foreach (DataRow drDist in drDists) { WriteExcelDataRowX(sheet1, dtnew, drDist, _style); } using (MemoryStream ms = new MemoryStream()) { hssfWorkBook.Write(ms); Response.Charset = "utf-8"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); string titleString = string.Empty; ) { titleString = "\"" + "区域案件分布统计表" + ".xls\""; Response.AddHeader("Content-Disposition", "attachment;filename=" + titleString); } else { Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", System.Web.HttpUtility.UrlEncode("区域案件分布统计表", System.Text.Encoding.UTF8) + ".xls")); } Response.BinaryWrite(ms.ToArray()); Response.End(); } //******************************************************************************************************** } } void WriteExcelDataRowX(HSSFSheet sheet, DataTable allData, DataRow row, HSSFCellStyle style) { //NPOI向单元格写入值 //从此二行创建 ; sheet.CreateRow(rowIndex); ; i <= ; i++) { //HSSFCell cell1 = sheet.GetRow(rowIndex).CreateCell(i) as HSSFCell; //if (i == 0) //{ // cell1.SetCellValue("序号"); //} //else if (i == 1) //{ // cell1.SetCellValue("区域"); //} //else //{ // cell1.SetCellValue("案件数"); //} HSSFCell cell = sheet.GetRow(rowIndex).GetCell(i) as HSSFCell; if (cell == null) { cell = sheet.GetRow(rowIndex).CreateCell(i) as HSSFCell; } cell.CellStyle = style; ) { //序号 cell.SetCellValue(Helper.GetDataValue(rowIndex, string.Empty)); } ) { //区域 cell.SetCellValue(Helper.GetDataValue(row["Region"], string.Empty)); } else { //案件数 cell.SetCellValue(Helper.GetDataValue(row["CaseNumber"], string.Empty)); } } //next level DataRow[] childData = allData.Select(string.Format("[c_parent_id]={0}", row["Id"])); ) { int curIndex = sheet.LastRowNum; foreach (DataRow childRow in childData) { WriteExcelDataRowX(sheet, allData, childRow, style); } sheet.GroupRow(curIndex + , sheet.LastRowNum); } } } [Serializable] [AjaxPro.AjaxNoTypeUsage] public class SearchPara { public string DateBegin; public string DateEnd; //public string EvtStatus; //public int TaskId = 0; } [Serializable] [AjaxPro.AjaxNoTypeUsage] public class EvtSpreadData { public List<Evt> ListEvt = new List<Evt>(); public string SprHtmlResult = ""; public string Title = ""; } [Serializable] [AjaxPro.AjaxNoTypeUsage] public class Evt { public long EvtId; public double AbsX; public double AbsY; public string Title; public int DistId; public int StreetId; public int CmnId; //public int Status = 0; //public int FirstAttachType = -1; //public string PicGUID; //public string Html; } }
NPOI分层导出的更多相关文章
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
- PhotoshopCS4轻松将PSD分层导出为Png分层
大家在网上都下载过PSD分层素材,有时候想把素材分层导出,以往做法是一层一层导出,可是这样效率太低,其实利用PS自带功能可以轻松导出PNG分层. 我们先打开一个PSD文件. 文件有7个图层,分 ...
- NPOI导入导出Excel
.net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交 代码: 第一步. 在页面里面加入2个隐藏的iframe, 如下 ...
- NET使用NPOI组件导出Excel-入门示例及通用方法
一.Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是as ...
- .Net core NPOI导入导出Excel
最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...
- 简单回顾NPOI导入导出excel文件
当前环境.net4.0 去官方下下载: NOPI官网 关于NOPI的详细,这里就不再介绍. 在项目中,我们只需引入 NPOI.dll 就可以了. 接下来..................... ...
- c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出
将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using Sys ...
- Npoi导入导出Excel操作
之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...
随机推荐
- docker好文收藏
深入浅出Docker(一):Docker核心技术预览 2. 核心技术预览 Docker核心是一个操作系统级虚拟化方法, 理解起来可能并不像VM那样直观.我们从虚拟化方法的四个方面:隔离性.可配额/可度 ...
- visio取消自动粘附
有时候画直线的时候需要直线摆在任意位置,这个时候自动粘附就很碍事了,总是自动把你的直线给摆到粘附的特殊位置上 如何取消: 视图->视觉帮助(点右下角的小箭头)->当前活动的->取消勾 ...
- 从零开始攻略PHP(7)——面向对象(上)
1.理解面向对象的概念 面向对象软件的一个重要优点是支持和鼓励封装的能力.封装也叫数据隐藏. 在面向对象的软件中,对象是一个被保存数据和操作这些数据的操作方法的唯一.可标识的集合. 对象可以按类进行分 ...
- PCB的封装尺寸
PCB封装主要分为贴片式与插件式 1)贴片元件封装说明发光二极管:颜色有红.黄.绿.蓝之分,亮度分普亮.高亮.超亮三个等级,常用的封装形式有三类:0805.1206.121 (常用封装为RB.1/. ...
- iPad Pro分辨率
iPad Pro分辨率 为 2732 x 2048
- 真~让IE8支持background: rbga; ,IE8下兼容rgba颜色的半透明背景
IE8下兼容rgba颜色的半透明背景 这样的标题在百度和google搜索下很多篇文章,讲解IE8下兼容rgba的. 这些文章全部都是使用IE下的filter来使元素透明,但是这个里面会有bug. 它们 ...
- html a标签包含a标签,浏览器的行为处理
a标签包含a标签 浏览器可能是为了避免a的转跳重复,所以禁止了a标签包含a标签,如何你的代码中有a标签包含a标签,那么浏览器将会重新编码外层a标签,取外层a标签与内层a标签的差集,加上外层a标签,并把 ...
- leetcode:1-5题代码整理
以下是这段时间抽时间刷的前5题,都是自己想的解法,或许不是最优解,只是整理下,方便日后优化提升 1. Two Sum: class Solution: # @return a tuple, (inde ...
- infoq - neo4j graph db
My name is Charles Humble and I am here at QCon New York 2014 with Ian Robinson. Ian, can you introd ...
- 此操作失败的原因是对 IID 为“{000208DA-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface
有些电脑报错,有些电脑正常. 环境:VS2010 WinForm程序, Office2007 C#操作Excel时报错.错误: 无法将类型为“System.__ComObject”的 COM 对象强制 ...