然后点插入图表,选择饼图的形状
按下一步根据所需,设置各种参数,这个都有提示,不详细图解了
都设置好后是这样的,然后我们在图上右键鼠标,点击数据系列格式
勾选需要的值
得到如下的结果
2-1.快速拆分姓名
拆分姓名可以借助Excel 2013新增加的快速填充迅速完成,具体操作是,首先将光标定位到"姓"字段,手工输入一组正确的姓氏,然后用滑块自动填充整个字段。接下来点击单元格右侧的自动填充钮,选择"快速填充"。这时Excel就会感知这个规律,并将正确的姓氏提取出来。同样操作,再提取出名"字段即可。
当然这项功能还有很多用武之处,比如将一个标准日期(如2012-11-6)拆分为年、月、日。
图1 excel 2013办公技巧:快速拆分姓名
(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/ejc/)2-2. 智能补全
当有字段需要引用之前数据时,我们可以尝试手工输入一两条记录,正常情况下Excel 2013会智能感知你的操作,并依照规律自动进行内容补全。当然为了避免曲解用户意图,此时的补全还仅仅是一条内容提示,只有当用户回车明确这一操作时,这里的内容才会真正进入单元格内。如果我不需要Excel的这次提示该怎么办?很简单!直接输入你的数据即可,智能补全会自动感知并取消补全菜单。
图2 excel 2013办公技巧:智能补全
2-3. 智能字段合并
如果有两个以上字段需要合并,也可借助"快速填充"加以完成。方法是首先定位目标单元格,手工输入一条正确记录,然后用滑块拖拽填充整个字段。接下来点击单元格右侧自动填充钮,执行"快速填充",这时Excel 2013便会依照第一条规律,修改其余内容,最终回车确认此次操作即可。
图3 excel 2013办公技巧:智能字段合并
虽然这些excel 2013办公技巧看上去很简单,但是确实很大的方便了用户,希望大家在工作办公中能用得上。
输入大量带有小数位的数字时,按照普通的输入方法,例如0.05这个数字,我们会原样输入到表格中,这样工作量会变大,输入效率会降低。其实,我们可以使用Excel XP中的小数点自动定位功能,让小数点自动定位,从而快速提高输入速度。
用鼠标依次单击工具/选项/编辑标签,在弹出的对话框中选中自动设置小数点复选框,然后在位数微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。
例如,要在某单元格中键入0.06,可以在上面的设置中,让位数选项为2,然后tulaoShi.com直接在指定单元格中输入6,回车以后,该单元格的数字自动变为0.06。怎么样,简单吧?
这篇文章主要介绍了.NET操作Excel实例,有需要的朋友可以参考一下
1. 读取 读取好像有几种方式,通过ADO.net, 通过Microsoft.Interop.Excel支持类库用调用COM读取,还有通过ZIP解压最终读取DOM(这个貌似蛮复杂)这里我用的ADO.NET只介绍这一个。 代码如下:public DataTable ExcelToDataTable(string strExcelPath, string strSheetName){ string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelPath + ";" + "Extended Properties=Excel 5.0;"; string strExcel = string.Format("select * from [{0}$]", strSheetName); DataSet ds = new DataSet(); OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn); adapter.Fill(ds, strSheetName); conn.Close(); return ds.Tables[strSheetName];} 参数: StrExcelPath Excel文件的路径,strSheetName 要读取表的名称这里贴个读SheetName的代码,这个是调用Microsoft.Interop.Excel来读取 Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open("Excel文件路径", 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "t", false, false, 0, true); Excel.Sheets sheets = theWorkbook.Worksheets; Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1); ExecName = worksheet.Name; theWorkbook.Close(null, null, null);//记得要关闭,否则程序关闭,Excel的进程还在2.创建新的excel文件 代码如下:Excel.ApplicationClass myExcel = new Excel.ApplicationClass(); //实例一个excelExcel._Workbook xBk; //工作薄 相当于一个Excel文件 Excel._Worksheet xSt; //工作Sheet 一个文件里的表xBk = myExcel.Workbooks.Add(true); //允许添加 sheetobject missing = System.Reflection.Missing.Value;//空值myExcel.Sheets.Add(missing, missing, 1, Excel.XlSheetType.xlWorksheet);//添加sheetxSt = (Excel._Worksheet)xBk.ActiveSheet;//得到默认sheetxSt.Name = "新的表"; //这里设置表名xBk.SaveAs( 保存路径 , missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlShared, missing, missing, missing, missing); //保存文件myExcel.Quit(); //同样要记得关闭 3.添加内容这里只说一般数据的添加,图表的就不介绍了, 在Excel的操作里一般是以表格和范围为单位,行或列是从1开始而不是从0开始先介绍一下格式设置,如下如设置第一行字体为红色:((Excel.Range)xSt.Rows[1, Type.Missing]).Font.Color = 0xFF0000; //xSt 是上边代码的变量名,颜色值是用16进制RGB设置第二列为百分数的格式 ((Excel.Range)xSt.Columns[2, Type.Missing]).NumberFormat = "0.00%"; 备常用格式:文本:@ 日期:yyyy/mm/dd 数字:#,##0.00 货币:¥#,##0.00 百分比:0.00%上边两种为行选择和列选择,如果要选择第1行第2列到第1行第5列就用get_Range(); xSt.get_Range(xSt.Cells[1,2],xSt.Cells[1,5])如果需要其它格式,如单元格背景,边框,字体样式 ,查下文档。不过大部分从点出来的方法名就能知道了再就是添加内容,直接写点代码参考。 代码如下:int rowIdx = 2; //从第2行列始//这里dt 是DataTable数据源foreach( DataRow dr in dt.Rows ){ int j = 1; //从第1列开始 myExcel.Cells[rowIdx, j++] = dr["dt列名"].ToString(); myExcel.Cells[rowIdx, j++] = dr["dt列名"].ToString(); myExcel.Cells[rowIdx, j++] = dr["dt列名"].ToString(); myExcel.Cells[rowIdx, j++] = dr["dt列名"].ToString(); myExcel.Cells[rowIdx, j++] = dr["dt列名"].ToString(); myExcel.Cells[rowIdx, j++] = dr["dt列名"].ToString(); //用公式的情况,显示A+B+C+D的结果 myExcel.Cells[rowIdx, j++] = string.Format("=SUM(A{0}:D{0})",rowIdx); rowIdx++;} 写完了save一下 xBk.Save(),还是记得要关闭。通过复制Table生成word和excel,个人感觉这个功能还是比较实用的,下面有个不错的示例,希望对大家有所帮助
代码如下:!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=gb2312" / title无标题文档/title script language="javascript" function AutomateWordAutoPaging(prefixion,Count) { var oWD = new ActiveXObject("Word.Application"); var oDC = oWD.Documents.Add(); oDC.ShowGrammaticalErrors = false; //屏蔽语法检查 oDC.ShowSpellingErrors = false; //屏蔽拼写检查 var oRange =oDC.Range(0,1); for (i=0;iCount;i++) { var sel = document.body.createTextRange(); var TableName = prefixion+i; var Table = document.getElementById(TableName) sel.moveToElementText(Table); sel.select(); sel.execCommand("Copy"); oWD.Selection.Paste(); oWD.Selection.InsertBreak(); //插入分页符 } //oWD.ActiveDocument.ActiveWindow.View.Type=3 //设置浏览模式 oWD.Visible = true; }; function AutomateExcel(prefixion) { var elTable = document.getElementById("AutomateExcel"); var oRangeRef = document.body.createTextRange(); oRangeRef.moveToElementText(elTable); oRangeRef.execCommand("Copy"); try{ var appExcel = new ActiveXObject( "Excel.Application" ); }catch(e) { alert("无法调用Office对象,请确保您的机器已安装了Office并已将本系统的站点名加入到IE的信任站点列表中!"); return; } appExcel.Visible = true; appExcel.Workbooks.Add().Worksheets.Item(1).Paste(); appExcel.Workbooks(1).Worksheets.Item(1).Columns("A:A").ColumnWidth = 100; //appExcel.Workbooks(1).Worksheets.Item(1).Columns("B:B").ColumnWidth = 21; appExcel = null }; /script /head body input type="button" value="导出到Word自动分页" onclick="AutomateWordAutoPaging('Table',5)" / input type="button" value="导出到Excel控制列宽" onclick="AutomateExcel('Table')"/ div id="AutomateExcel" TABLE class=tabp id="Table0" cellSpacing=0 cellPadding=2 width="100%" align=center border=1 TR TD width="100%" align="center"标题0/TD /TR TR TD align="center"内容0/TD /TR /TABLE BR TABLE class=tabp id="Table1" cellSpacing=0 cellPadding=2 width="100%" align=center border=1 TR TD width="100%" align="center"标题1/TD /TR TR TD align="center"内容1/TD /TR /TABLE BR/ TABLE class=tabp id="Table2" cellSpacing=0 cellPadding=2 width="100%" align=center border=1 TR TD width="100%" align="center"标题2/TD /TR TR TD align="center"内容2/TD /TR /TABLE BR/ TABLE class=tabp id="Table3" cellSpacing=0 cellPadding=2 width="100%" align=center border=1 TR TD width="100%" align="center"标题3/TD /TR TR TD align="center"内容3/TD /TR /TABLE BR/ TABLE class=tabp id="Table4" cellSpacing=0 cellPadding=2 width="100%" align=center border=1 TR TD width="100%" align="center"标题4/TD /TR TR TD align="center"内容4/TD /TR /TABLE BR/ /div /body /html这篇文章主要介绍了.Net读取Excel 返回DataTable实例代码,有需要的朋友可以参考一下
(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/ejc/)代码如下:using System;using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;using System.Data;using System.IO;using System.Linq;using System.Web;using System.Collections;using System.Data.OleDb;using NuctechProject.DTO.Bll;using System.Collections.Generic;namespace NuctechProject.Layouts.Project{ public partial class IntroductionPlan : LayoutsPageBase { string url = Common.rootUrl; private string _strConn; //导入excel时的连接 string pmurl = Common.proUrl; private UserBLL bll = new UserBLL(); protected void Page_Load(object sender, EventArgs e) { hidProid.Value = Request.QueryString["proid"]; } protected void BtnOK_Click(object sender, EventArgs e) { DataTable excelTable = null; SPSecurity.RunWithElevatedPrivileges(delegate { if (BaseInfoTemplateFile.HasFile) { Liststring noInput = new Liststring(); string strLoginName = HttpContext.Current.User.Identity.Name; //获取用户名 string folderTemp = strLoginName.Substring(strLoginName.LastIndexOf('') + 1); try { string extension = Path.GetExtension(BaseInfoTemplateFile.FileName); //获取文件的后缀 if (extension != null) { string fileException = extension.ToLower(); if (fileException == ".xlsx" || fileException == ".xls") { #region 读取Excel string fileFolder = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/"); if (!Directory.Exists(fileFolder)) //根目录 { Directory.CreateDirectory(fileFolder); //判断上传目录是否存在 自动创建 } BaseInfoTemplateFile.SaveAs(Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/" + BaseInfoTemplateFile.FileName)); string strFilepathNmae = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/" + BaseInfoTemplateFile.FileName); string strExcel = ExcelSheetName(strFilepathNmae)[0].ToString(); excelTable = ExcelDataSource(strFilepathNmae, strExcel).Tables[0]; #endregion //data是excel的数据 DataTable data = ExcelDataSource(strFilepathNmae, strExcel).Tables[0];//try //{ if (data != null) { foreach (DataRow row in data.Rows) { //读取 } } //} //catch (Exception) //{ // Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "script type='text/javascript'$.ligerDialog.closeWaitting();alert('Excel表列名与系统不符合,请检查Excel表列名!');/script"); // return; //} } else { Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "script type='text/javascript'$.ligerDialog.closeWaitting();alert('您选择的文件不是Excel格式!');/script"); &(图老师整理)nbsp; return; } } } finally //最终要把临时存储的文件删除 { string strFileFolder = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/"); if (Directory.Exists(strFileFolder)) //根目录 { //Directory.CreateDirectory(strFileFolder);//判断上传目录是否存在 自动创建 Directory.Delete(strFileFolder, true); } else { Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "script type='text/javascript'ReturnPageValue();/script"); } } } else { Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "script type='text/javascript'$.ligerDialog.closeWaitting();alert('请选择导入文件!');/script"); return; } }); } protected void BtnClose_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "script type='text/javascript'ReturnPageValue();/script"); } /// summary /// 连接到Excel /// /summary /// param name="filepath"文件路径/param /// 图老师param name="sheetname"sheet名字/param /// returns/returns public DataSet ExcelDataSource(string filepath, string sheetname) { _strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=YES'"; new OleDbConnection(_strConn); var oada = new OleDbDataAdapter("select * from [" + sheetname + "]", _strConn); var ds = new DataSet(); oada.Fill(ds); return ds; } /// summary /// 获得Excel中的所有sheetname /// /summary /// param name="filepath"文件路径/param /// returns/returns public ArrayList ExcelSheetName(string filepath) { _strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=YES'"; var al = new ArrayList(); var conn = new OleDbConnection(_strConn); conn.Open(); DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); conn.Close(); if (sheetNames != null) foreach (DataRow dr in sheetNames.Rows) { al.Add(dr[2]); } return al; } }}flex导出excel的前提是需要插件as3xls-1.0.1.swc,下面为大家介绍下具体的实现
需要插件 as3xls-1.0.1.swc 代码如下:?xml version="1.0" encoding="utf-8"? s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" fx:Script ![CDATA[ import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.controls.CheckBox; [Bindable] private var dp:Array = [ {studentID:1,name:"2ssdl",gender:"为001",birthday:"4区",className:"5清道夫却无法"}, {studentID:2,name:"2士大",gender:"1色调",birthday:"4却",className:"5为去去"}, {studentID:3,name:"2访问",gender:"1色调",birthday:"飞4",className:"访问5"}, {studentID:4,name:"访问2",gender:"0色调",birthday:"4却",className:"为5"}, {studentID:5,name:"2各位",gender:"0色调",birthday:"4飞",className:"5为"}]; private function onCreate(dg:DataGrid):void { var rowCount:int = dg.dataProvider.length; var colCount:int = dg.columnCount; var sheet:Sheet = new Sheet(); sheet.resize(rowCount+1,colCount); //设置表格的范围 var fields:Array = new Array();//用来保存字段 for(var i:int=0; i colCount;i++) { sheet.setCell(0,i,dg.columns[i].headerText.toString());//表格第0行设置字段名 fields.push(dg.columns[i].dataField.toString()); } for(var i:int=0; i rowCount;i++) { var record:Object =dg.dataProvider[i];//获取某行 insertRecordInSheet(i+1,sheet,record); } var excelFile:ExcelFile = new ExcelFile();//新建excel文件 excelFile.sheets.addItem(sheet);//把表格添加入excel文件中 var mbytes:ByteArray = excelFile.saveToByteArray(); var file:FileReference = new FileReference(); file.save(mbytes,"测试文件.xls"); // 定死文件名 file.addEventListener(Event.COMPLETE, function (){ Alert.show("保存成功"); }); /**回调函数**/ function insertRecordInSheet(row:int,sheet:Sheet,record:Object):void { for(var c:int; c colCount; c++) { var i:int = 0; for each(var field:String in fields) { for each (var value:String in record) { /**循环判断myDg列名域值record[field]与value是否相等**/ if (record[field].toString() == value) /**写入表格中**/ sheet.setCell(row,i,value); } i++; } } } } ]] /fx:Script fx:Declarations !-- 将非可视元素(例如服务、值对象)放在此处 -- /fx:Declarations mx:Panel mx:Button label="导出" click="onCreate(myDG)"/ mx:DataGrid id="myDG" width="100%" rowCount="20" dataProvider="{dp}" mx:columns mx:DataGridColumn headerText="学号" dataField="studentID"/ mx:DataGridColumn headerText="姓名" dataField="name"/ mx:DataGridColumn headerText="性别" dataField="gender" width="50"/ mx:DataGridColumn headerText="生日" dataField="birthday" / mx:DataGridColumn headerText="班级" dataField="className"/ /mx:columns /mx:DataGrid /mx:Panel /s:Application