首页
归档
留言
友链
广告合作
壁纸
更多
美女主播
Search
1
博瑞GE车机升级/降级
5,590 阅读
2
Mac打印机设置黑白打印
4,903 阅读
3
修改elementUI中el-table树形结构图标
4,873 阅读
4
Mac客户端添加腾讯企业邮箱方法
4,654 阅读
5
intelliJ Idea 2022.2.X破解
4,333 阅读
后端开发
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
登录
/
注册
Search
标签搜索
Spring Boot
Java
Vue
Spring Cloud
Mac
MyBatis
WordPress
MacOS
asp.net
Element UI
Nacos
.Net
Spring Cloud Alibaba
MySQL
Mybatis-Plus
Typecho
jQuery
Java Script
微信小程序
Oracle
Laughing
累计撰写
618
篇文章
累计收到
1,419
条评论
首页
栏目
后端开发
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
页面
归档
留言
友链
广告合作
壁纸
美女主播
搜索到
618
篇与
的结果
2017-07-24
VS2017使用MVC提示no-executables-found-matching-command-dotnet-aspnet-codegenerator
╮(╯▽╰)╭,发现自己是越来越使用不了VS了,最近想拿.NetCore练练手,结果添加控制器也好,添加视图也好,都是提示命令找不到。度娘也不太给力,最后还是在Stack Overflow找到了原因问题原因主要是因为我在VS2017中还是使用的csproj,现在都是使用project.json了,所以我们需要在csproj的ItemGroup节点,添加一下信息<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
2017年07月24日
1,131 阅读
0 评论
0 点赞
2017-07-21
NPOI读取、写入Excel
简介使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。代码封装using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; namespace Genersoft.GS.ZDB.Development.Controller.RO { public class NPOIHelper : IDisposable { private string fileName = null; //文件名 private IWorkbook workbook = null; private FileStream fs = null; private bool disposed; public NPOIHelper(string fileName) { this.fileName = fileName; disposed = false; } #region 导出Excel 根据datatable的格式导出对应的格式 /// <summary> /// 导出Excel 根据datatable的格式导出对应的格式 /// </summary> /// <param name="fileName">保存路径</param> /// <param name="dtSource">导出的数据源</param> /// <param name="sheetName">创建的sheet表名称</param> /// <param name="isColumnWritten">是否写入列名作为Excel头</param> /// <returns></returns> public int DataTableToExcel( DataTable dtSource, string sheetName, bool isColumnWritten) { FileStream fs = null; int i = 0; int j = 0; int count = 0; IWorkbook workbook = null; ISheet sheet = null; try { using (fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { if (fileName.IndexOf(".xlsx") > 0) // 2007版本 workbook = new XSSFWorkbook(); else if (fileName.IndexOf(".xls") > 0) // 2003版本 workbook = new HSSFWorkbook(); if (workbook != null) { sheet = workbook.CreateSheet(sheetName); } else { return -1; } ICellStyle dateStyle = workbook.CreateCellStyle(); IDataFormat format = workbook.CreateDataFormat(); dateStyle.DataFormat = format.GetFormat("yyyy/mm/dd"); ICellStyle dateStyleStr = workbook.CreateCellStyle(); IDataFormat formatStr = workbook.CreateDataFormat(); dateStyleStr.DataFormat = formatStr.GetFormat("@"); if (isColumnWritten == true) //写入DataTable的列名 { IRow row = sheet.CreateRow(0); for (j = 0; j < dtSource.Columns.Count; ++j) { row.CreateCell(j).SetCellValue(dtSource.Columns[j].ColumnName); } count = 1; } else { count = 0; } foreach (DataRow dr in dtSource.Rows) { IRow row = sheet.CreateRow(count); foreach (DataColumn column in dtSource.Columns) { ICell newCell = row.CreateCell(column.Ordinal); string drValue = dr[column].ToString(); switch (column.DataType.ToString()) { case "System.String"://字符串类型 newCell.SetCellValue(drValue); newCell.SetCellType(CellType.String); newCell.CellStyle = dateStyleStr; break; case "System.DateTime"://日期类型 DateTime dateV; if (!string.IsNullOrEmpty(drValue)) { DateTime.TryParse(drValue, out dateV); newCell.SetCellValue(dateV); } newCell.CellStyle = dateStyle;//格式化显示 break; case "System.Boolean"://布尔型 bool boolV = false; bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); newCell.SetCellType(CellType.Boolean); break; case "System.Int16"://整型 case "System.Int32": case "System.Int64": case "System.Byte": if (!string.IsNullOrEmpty(drValue)) { int intV = 0; int.TryParse(drValue, out intV); newCell.SetCellValue(intV); newCell.SetCellType(CellType.Numeric); } break; case "System.Decimal"://浮点型 case "System.Double": if (!string.IsNullOrEmpty(drValue)) { double doubV = 0; double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); newCell.SetCellType(CellType.Numeric); } break; case "System.DBNull"://空值处理 newCell.SetCellValue(""); break; default: newCell.SetCellValue(""); break; } } ++count; } for ( i = 0; i <= sheet.LastRowNum; i++) { sheet.AutoSizeColumn(i,true); } sheet.SetColumnWidth(4, 10 * 256); sheet.SetColumnWidth(5, 10 * 256); if (dtSource.Columns.Count >= 13) { sheet.SetColumnWidth(13, 10 * 256); } workbook.Write(fs); //写入到excel} return count; } } catch (Exception ex) { fs.Dispose(); fs.Close(); throw; } } #endregion #region 导出Excel 根据datatable的格式导出对应的格式 /// <summary> /// 导出Excel 根据datatable的格式导出对应的格式 /// </summary> /// <param name="fileName">保存路径</param> /// <param name="dtSource">导出的数据源</param> /// <param name="sheetName">创建的sheet表名称</param> /// <param name="isColumnWritten">是否写入列名作为Excel头</param> /// <returns></returns> public int DataTableToExcelString(DataTable dtSource, string sheetName, bool isColumnWritten) { FileStream fs = null; int i = 0; int j = 0; int count = 0; IWorkbook workbook = null; ISheet sheet = null; try { using (fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { if (fileName.IndexOf(".xlsx") > 0) // 2007版本 workbook = new XSSFWorkbook(); else if (fileName.IndexOf(".xls") > 0) // 2003版本 workbook = new HSSFWorkbook(); if (workbook != null) { sheet = workbook.CreateSheet(sheetName); } else { return -1; } ICellStyle dateStyle = workbook.CreateCellStyle(); IDataFormat format = workbook.CreateDataFormat(); dateStyle.DataFormat = format.GetFormat("yyyy/mm/dd hh:mm:ss"); ICellStyle dateStyleStr = workbook.CreateCellStyle(); IDataFormat formatStr = workbook.CreateDataFormat(); dateStyleStr.DataFormat = formatStr.GetFormat("@"); if (isColumnWritten == true) //写入DataTable的列名 { IRow row = sheet.CreateRow(0); for (j = 0; j < dtSource.Columns.Count; ++j) { row.CreateCell(j).SetCellValue(dtSource.Columns[j].ColumnName); } count = 1; } else { count = 0; } foreach (DataRow dr in dtSource.Rows) { IRow row = sheet.CreateRow(count); foreach (DataColumn column in dtSource.Columns) { ICell newCell = row.CreateCell(column.Ordinal); string drValue = dr[column].ToString(); switch (column.DataType.ToString()) { case "System.String"://字符串类型 newCell.SetCellValue(drValue); newCell.CellStyle = dateStyleStr; break; case "System.DateTime"://日期类型 DateTime dateV; if (!string.IsNullOrEmpty(drValue)) { DateTime.TryParse(drValue, out dateV); newCell.SetCellValue(dateV); } newCell.CellStyle = dateStyle;//格式化显示 break; case "System.Boolean"://布尔型 bool boolV = false; bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); break; case "System.Int16"://整型 case "System.Int32": case "System.Int64": case "System.Byte": if (!string.IsNullOrEmpty(drValue)) { int intV = 0; int.TryParse(drValue, out intV); newCell.SetCellValue(intV); newCell.SetCellType(CellType.Numeric); } break; case "System.Decimal"://浮点型 case "System.Double": if (!string.IsNullOrEmpty(drValue)) { double doubV = 0; double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); newCell.SetCellType(CellType.Numeric); } break; case "System.DBNull"://空值处理 newCell.SetCellValue(""); break; default: newCell.SetCellValue(""); break; } } ++count; } for (i = 0; i < sheet.LastRowNum; i++) { sheet.AutoSizeColumn(i, true); } workbook.Write(fs); //写入到excel} return count; } } catch (Exception ex) { fs.Dispose(); fs.Close(); throw; } } #endregion #region 将excel中的数据导入到DataTable中 /// <summary> /// 将excel中的数据导入到DataTable中 /// </summary> /// <param name="sheetName">excel工作薄sheet的名称</param> /// <param name="isFirstRowColumn">第一行是否是DataTable的列名</param> /// <returns>返回的DataTable</returns> public DataTable ExcelToDataTable(string sheetName, bool isFirstRowColumn) { ISheet sheet = null; DataTable data = new DataTable(); int startRow = 0; try { fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); if (fileName.IndexOf(".xlsx") > 0) // 2007版本 workbook = new XSSFWorkbook(fs); else if (fileName.IndexOf(".xls") > 0) // 2003版本 workbook = new HSSFWorkbook(fs); if (sheetName != null) { sheet = workbook.GetSheet(sheetName); if (sheet == null) //如果没有找到指定的sheetName对应的sheet,则尝试获取第一个sheet { sheet = workbook.GetSheetAt(0); } } else { sheet = workbook.GetSheetAt(0); } if (sheet != null) { IRow firstRow = sheet.GetRow(0); int cellCount = firstRow.LastCellNum; //一行最后一个cell的编号 即总的列数 if (isFirstRowColumn) { for (int i = firstRow.FirstCellNum; i < cellCount; ++i) { ICell cell = firstRow.GetCell(i); if (cell != null) { string cellValue = cell.StringCellValue; if (cellValue != null) { DataColumn column = new DataColumn(cellValue); data.Columns.Add(column); } } } startRow = sheet.FirstRowNum + 1; } else { startRow = sheet.FirstRowNum; } //最后一列的标号 int rowCount = sheet.LastRowNum; for (int i = startRow; i <= rowCount; ++i) { IRow row = sheet.GetRow(i); if (row == null) continue; //没有数据的行默认是null DataRow dataRow = data.NewRow(); for (int j = row.FirstCellNum; j < cellCount; ++j) { if (row.GetCell(j) != null) //同理,没有数据的单元格都默认是null dataRow[j] = row.GetCell(j).ToString(); } data.Rows.Add(dataRow); } } return data; } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; } } #endregion public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (!this.disposed) { if (disposing) { if (fs != null) fs.Close(); } fs = null; disposed = true; } } } }
2017年07月21日
1,487 阅读
2 评论
0 点赞
2017-07-19
jqprint打印插件
jqprint打印插件支持谷歌、火狐、safari、ie等主流浏览器。而且jqprint打印设置非常简单。一个通过单击页面按钮,便实现页面打印的jQuery插件jqprint。使用jqprint使用非常简单,只需要在页面引入<script language="javascript" src="jquery-1.4.4.min.js"></script> <script language="javascript" src="jquery.jqprint-0.3.js"></script> 如果遇到Cannot read property 'opera' of undefined错误,是juqery版本兼容问题,可以通过引入jquery-migrate-1.2.1.min.js解决示例代码<div id="ddd"> <table> <tr> <td>test</td> <td>test</td> <td>test</td> <td>test</td> <td>test</td> </tr> </table> </div> js <script language="javascript"> function a(){ $("#ddd").jqprint(); } </script>
2017年07月19日
1,373 阅读
0 评论
1 点赞
2017-07-18
火狐浏览器不支持click、focusin、focusout方法
老版本的火狐浏览器是不支持click、focusin以及focusout方法的。我主要测试了focusin以及focusou方法,这两个方法需要火狐52以上版本才能够支持的。我们项目中,客户使用的火狐版本都是49的,对于这两个方法,我们可以修改成onfocus和onblur,这两个方法火狐49是支持的以下代码在火狐52以下版本不支持<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试</title> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> <script type="text/javascript"> $(function(){ $("#input1").click(function(){ alert('老版本火狐无法弹出'); }); }); function focusout1(){ alert('focusout'); } function foucusin1(){ alert('focusin'); } </script> </head> <body> <input type="text" name="input1" id="input1" onfocusout="focusout1()" onfocusin="foucusin1()" /> </body> </html> 49版本支持以下代码<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试</title> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> <script type="text/javascript"> $(function(){ $("#input1").click(function(){ alert('老版本火狐无法弹出'); }); }); function focusout1(){ alert('focusout'); } function foucusin1(){ alert('focusin'); } </script> </head> <body> <input type="text" name="input1" id="input1" onblur ="focusout1()" onfocus ="foucusin1()" /> </body> </html>
2017年07月18日
1,299 阅读
0 评论
1 点赞
2017-07-18
使用Linq判断DataTable数据是否重复
我们一般系统在导入数据的时候,一般都是通过NPOI将excel数据转换成DataTable,然后将DataTable导入到数据库。在数据导入的过程中,其实很重要的一部就是检查DataTable中的数据是否有重复的,如果存在重复的,我们需要识别出重复的数据。在.net中,我们通过Rows属性的cast()方法,可以很方便的过滤出重复的数据,下面的代码即可实现var query = from e in dt.Rows.Cast<DataRow>() group e by new { sapCode = e.Field<string>("SAPComCode"), sapsupplierCode = e.Field<string>("SapSupplierCode") } into g select new { sapComCode = g.Key, count = g.Count() }; var items = query.Where(A => A.count > 1); if (items.Count() > 0)//存在重复数据 { string SameSapComCode = string.Empty; foreach (var item in items) { SameSapComCode += item.sapComCode + ";"; } SameSapComCode = SameSapComCode.TrimEnd(';'); result.Data = "以下SAP公司编号的数据存在重复,请检查后重新导入<br/>" + SameSapComCode; return result; }
2017年07月18日
1,283 阅读
0 评论
0 点赞
2017-07-16
最近项目需求频繁变更的一点思考
项目肿么了任何项目都逃脱不了需求变更,工作四年了,从来没有碰到到如此这般的项目需求变更,明天项目就要上线了,今天晚上接近8点钟,项目上又提出了新的变更。这篇文章,其实真正的写作日期是7月4日,为什么知道今天(7月6日)才真正的发布出来。因为我一直在对应无休止的需求变更,帮助修改用户错误的基础数据。弱国无外交所谓“弱国无外交”,其实这句话对于企业来说也是适用的。一般的小公司,在做项目的过程中,总是疲于应付用户需求变更。一般小公司签订的合同,合同额本身就比较低,在项目需求不断变更的过程中,成本却在一点点无形的增加上去了,慢慢的就把项目作死了。个人一点思考既然每个项目都要面对需求变更这个现实存在的问题,那么我们能够做到的就是合理的控制需求。虽然我们经常说客户就是上帝,但是我们也不能总是听从上帝的摆布。我个人倒是觉得可以通过以下方法尽可能多的避免问题:项目经理在第一时间屏蔽需求。这里说的需求不是所有的需求,而是一些客户无理的需求。不接受客户口头的需求。随便一个客户,随口一个需求我们都答应,那么往往我们会对这个功能来回改多变。谁用系统,谁在审核需求。客户提的需求,应该自己内部达成一致,不要说一个财务系统,让一个IT部门的人来提需求,这就是扯淡。一个IT的懂个P财务。任何需求应该做到有据可查,不要说当初谁谁说的要这么做,这种需求用户往往不会承认是一个变更原型设计把好第一道关。原型应该直接体现用户需求,并且让用户针对原型进行需求确认。
2017年07月16日
1,208 阅读
0 评论
1 点赞
2017-07-14
IE8下String的Trim()方法失效的解决方案
最近项目上线,都快被搞崩溃,一般我们项目测试都是IE9+版本或者火狐50+的,但是到了客户那边,偏偏跟我们对着干,客户电脑要么是IE8、要么就是火狐49的,我的天呀,简直疯了,这几天会在浏览器兼容性上进行调整了。用jQuery的trim()方法,$.trim(str)就可以了。String扩展:String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, ""); } String.prototype.ltrim = function () { return this.replace(/(^\s*)/g, ""); } String.prototype.rtrim = function () { return this.replace(/(\s*$)/g, ""); }
2017年07月14日
1,083 阅读
0 评论
0 点赞
2017-07-10
17款MacBook Pro无法降级
2017款MacBook Pro升级到macOS 10.13测试版后无法降级到macOS 10.12.5。2017款MacBook Pro升级到macOS 10.13测试版后无法降级到macOS 10.12.5。2017款MacBook Pro升级到macOS 10.13测试版后无法降级到macOS 10.12.5。重要的事情说三遍。解决办法目前只有一个办法能够降级到10.12,那就是通过在线恢复的方式进行恢复。
2017年07月10日
1,638 阅读
0 评论
1 点赞
2017-07-10
Idea,WebStorm,Phpstorm等IDE配色方案
程序员经常面对各种各样的IDE,一个好的配色方案能够愉悦一个人的心情。正所谓萝卜青菜各有所爱,但是我们从头到脚的一点点配置自己的IDE配色方案我感觉也是不太现实的,所以我们可以借鉴、利用大神们已经配置好的方案。jetbrains的配色方案我们可以通过下面的网址进行下载http://color-themes.com/下载自己喜欢的主题 xx.jar 包安装主题方法安装方案灰常简单,打开自己的IDE,依次展开File->Import Setting,然后选中xx.jar,之后重启Ide就好了.
2017年07月10日
1,796 阅读
0 评论
1 点赞
2017-07-09
新macbook pro怎么取消开盖自动开机
在macOS系统下:打开“终端”(在应用程序里-实用工具-终端)输入:sudo nvram AutoBoot=%00然后输入系统密码回车重新启动两次即可。
2017年07月09日
1,201 阅读
0 评论
1 点赞
2017-07-08
解决Nana主题打开文章提示Expected ')' to end an argument list的问题
最新新网站上线,使用了Nana主题,Nana主题是一款免费的主题,博主也是通过赞助的形式获得了免费的使用、修改权限。讲真,Nana主题还是挺好看的,当然也是参考了Begin主题的东西。这个只是个人,呵呵。言归正传,下面说一下问什么会出现这个问题问题分析其实今天在Nana讨论群里面询问了一下今天发现的这个问题,当时@群主也没有得到答复,可能群主太忙了,也没来得及看。然后群里一位童鞋说开启CDN导致的,我又正好开启了百度的CDN,所以当时也没多想。其实主要还是周六在加班呀。。。。。。晚上回到家,还是打算看一下是什么原因导致的,打开Safari调试器,大概看到报错的原因了,如下图通过错误信息,我们大概可以了解到是调用360的自动提交接口导致的,看了一下拼接的string字符串,发现是字符串拼接错了。本来应该是"的,结果错误的使用了'。解决办法既然知道原因,其实就好解决了。首先我们打开主题的functions.php文件,在大概1234行,找到拼接的语句,就是下面这句document.write('<script src='" + src + id='sozz'><\/script>'); 替换成以下即可document.write('<script src='" + src + "id='sozz'><\/script>');
2017年07月08日
1,595 阅读
1 评论
0 点赞
2017-07-08
begin主题V4.4下载
HTML5+CSS3 响应式设计,博客、杂志、图片、公司企业多种布局可选,集成SEO自定义功能,丰富的主题选项,众多实用小工具。主题说明好久之前,跟大家提供做begin主题2.2版本,本次主题提供的是begin主题4.4版本。虽然提供免费的主题,但是大家如果条件允许还是建议购买正版主题。目前李森的博客使用的主题是在Nana主题的基础上自己修改的一款主题,大家如果有需要的,也可以留言回复。安装须知主题有些功能会用到文章点击量,所以必须安装文章点击统计插件:wp-postview,可后台搜索安装官方最新版。安装主题前请禁用其它插件,只保留上面的wp-postview插件,以免造成不可预知的问题,特别是一些静态缓存、网页压缩类的插件,切记!之后逐一测试启用,主题不能保证兼容所有插件。使用主题前需详细阅读使用说明,并熟习主题选项面板及WordPress基本功能。主题安装登录WP后台→外观→主题→添加→上传主题→并启用Begin主题。启用主题后,会自动跳转到主题选项设置页面,不论设置与否,必须保存一次主题选项。主题升级主题会不定期地添加功能,修正BUG,并为用户提供免费升级服务。安装新版本主题,登录WP后台→外观→主题,在管理主题页面,启用任何一款WP默认主题→然后点击Begin主题缩略图上的“主题详情”按钮,在弹出的窗口中删除旧版本,然后添加→上传新版Begin主题包并启用,之前的主题选项设置不会丢失。建议上面的方法升级安装主题,如果使用FTP客户端上传,传输模式必须选择“二进制”,否则可能会造成“白屏”。更新主题后不论设置与否,必须保存一次主题选项。注:WordPress 自带的三款默认主题twentyfourteen、twentythirteen和twentyfifteen,必须保留。当升级主题出现空白页之类错误 时,用FTP删除当前主题,登录后台,会自动切换到默认主题,所以必须保留不能因为不使用而删除,切记。升级主题后,请清空WP Super Cache之类缓存插件的缓存文件,并刷新浏览器。主题下载{cloud title="begin.rar" type="bd" url="https://pan.baidu.com/s/1Pq0Pn6Xx0-SIi9jrhjQuyw" password="bs9n"/}
2017年07月08日
924 阅读
19 评论
2 点赞
1
...
47
48
49
...
52