EXCXEL中運(yùn)算符的優(yōu)先級(jí)如果公式中同時(shí)用到多個(gè)運(yùn)算符,Excel將按下表所示的順序進(jìn)行運(yùn)算。如果公式中包含相同優(yōu)先級(jí)的運(yùn)算符,例如,公式中同時(shí)包含乘法和除法運(yùn)算符,則Excel將從左到右進(jìn)行計(jì)算。運(yùn)算符說(shuō)明()括號(hào)最優(yōu)先(若要更改求值的順序,請(qǐng)將公式中要先計(jì)算的部分用括號(hào)括起來(lái)。):(冒號(hào))(單個(gè)空格),(逗號(hào))引用運(yùn)算符(指單元格地址或區(qū)域等)–負(fù)號(hào)(例如–1)%百分比
EXCXEL中運(yùn)算符的優(yōu)先級(jí)
如果公式中同時(shí)用到多個(gè)運(yùn)算符,Excel將按下表所示的順序進(jìn)行運(yùn)算。如果公式中包含相同優(yōu)先級(jí)的運(yùn)算符,例如,公式中同時(shí)包含乘法和除法運(yùn)算符,則Excel將從左到右進(jìn)行計(jì)算。
運(yùn)算符說(shuō)明
()括號(hào)最優(yōu)先(若要更改求值的順序,請(qǐng)將公式中要先計(jì)算的部分用括號(hào)括起來(lái)。)
:(冒號(hào))
(單個(gè)空格)
,(逗號(hào))
引用運(yùn)算符(指單元格地址或區(qū)域等)
–負(fù)號(hào)(例如–1)
%百分比
^乘冪
*和/乘和除
+和–加和減
&連接兩個(gè)文本字符串(連接)
==比較運(yùn)算符
1、點(diǎn)電腦左下角“開(kāi)始”
2、所有程序
3、MicrosoftOffice-
4、MicrosoftOffice工具-
5、MicrosoftOffice2003語(yǔ)言設(shè)置,里面有很多的,
6、都直接選擇中文(簡(jiǎn)體)就可以
一、如果是2003或以下版本,選中要做透視表的數(shù)據(jù)區(qū)域,一定要包含字段名,然后選擇菜單中的數(shù)據(jù)-數(shù)據(jù)透視表和透視圖,接向?qū)Р僮?,在布局中試著把需要的字段拖進(jìn)透視表的結(jié)構(gòu)圖上,將字段分別放在行、列和數(shù)據(jù)的位置,在數(shù)據(jù)中可選擇不同的統(tǒng)計(jì)方式,確定即可。
二、如果是2007或以上版本,選中要做透視表的數(shù)據(jù)區(qū)域,一定要包含字段名,然后工具欄-插入中選擇數(shù)據(jù)透視表,接向?qū)Р僮?,在布局中試著把需要的字段拖進(jìn)透視表的結(jié)構(gòu)圖上,將字段分別放在行、列和數(shù)據(jù)的位置,在數(shù)據(jù)中可選擇不同的統(tǒng)計(jì)方式,確定即可。
首先要導(dǎo)入spring相關(guān)包,poi,和fileupload包,我是使用maven構(gòu)建的。
一.導(dǎo)入excel
(1)使用spring上傳文件
a.前臺(tái)頁(yè)面提交
<formname="excelImportForm"action="${pageContext.request.contextPath}/brand/importBrandSort"method="post"onsubmit="returncheckImportPath();"enctype="multipart/form-data"id="excelImportForm">
<inputtype="hidden"name="ids"id="ids">
<div>
<div>
<label><inputid="excel_file"type="file"name="filename"accept="xls"/></label>
<div>
<inputid="excel_button"type="submit"value="導(dǎo)入Excel"/>
</div>
</div>
</div>
<div>
<buttontype="button"data-dismiss="modal"onClick="uncheckBoxes();">取消</button>
</div>
b.后臺(tái)spring的controller進(jìn)行相關(guān)操作,這里主要講的是使用spring上傳文件,和讀取文件信息。
使用spring上傳文件之前,需要配置bean。
<beanid="multipartResolver"></bean>@RequestMapping(value="/importBrandSort",method=RequestMethod.POST)
publicModelAndViewimportBrandSort(@RequestParam("filename")MultipartFilefile,
HttpServletRequestrequest,HttpServletResponseresponse)throwsException{
Stringtemp=request.getSession().getServletContext()
.getRealPath(File.separator)
+"temp";//臨時(shí)目錄
FiletempFile=newFile(temp);
if(!tempFile.exists()){
tempFile.mkdirs();
}
DiskFileUploadfu=newDiskFileUpload();
fu.setSizeMax(10*1024*1024);//設(shè)置允許用戶上傳文件大小,單位:位
fu.setSizeThreshold(4096);//設(shè)置最多只允許在內(nèi)存中存儲(chǔ)的數(shù)據(jù),單位:位
fu.setRepositoryPath(temp);//設(shè)置一旦文件大小超過(guò)getSizeThreshold()的值時(shí)數(shù)據(jù)存放在硬盤的目錄
//開(kāi)始讀取上傳信息
//
intindex=0;
/*ListfileItems=null;
try{
fileItems=fu.parseRequest(request);
}
catch(Exceptione){
e.printStackTrace();
}
Iteratoriter=fileItems.iterator();//依次處理每個(gè)上傳的文件
FileItemfileItem=null;
while(iter.hasNext()){
FileItemitem=(FileItem)iter.next();//忽略其他不是文件域的所有表單信息
if(!item.isFormField()){
fileItem=item;
//index++;
}
}
if(fileItem==null)
returnnull;
*/
if(file==null)
returnnull;
logger.info(file.getOriginalFilename());
Stringname=file.getOriginalFilename();//獲取上傳文件名,包括路徑
//name=name.substring(name.lastIndexOf("\\")+1);//從全路徑中提取文件名
longsize=file.getSize();
if((name==null||name.equals(""))&&size==0)
returnnull;
InputStreamin=file.getInputStream();
List<BrandMobileInfoEntity>BrandMobileInfos=brandService
.importBrandPeriodSort(in);
//改為人工刷新緩存KeyContextManager.clearPeriodCacheData(new
//PeriodDimensions());//清理所有緩存
intcount=BrandMobileInfos.size();
StringstrAlertMsg="";
if(count!=0){
strAlertMsg="成功導(dǎo)入"+count+"條!";
}else{
strAlertMsg="導(dǎo)入失??!";
}
logger.info(strAlertMsg);
//request.setAttribute("brandPeriodSortList",BrandMobileInfos);
//request.setAttribute("strAlertMsg",strAlertMsg);
request.getSession().setAttribute("msg",strAlertMsg);
returnget(request,response);
//returnnull;
}
代碼中的注釋部分是如果不使用spring的方式,如何拿到提交過(guò)來(lái)的文件名(需要是要apache的一些工具包),其實(shí)使用spring的也是一樣,只是已經(jīng)做好了封裝,方便我們寫代碼。
代碼中的后半部分是讀取完上傳文文件的信息和對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新之后,輸出到前臺(tái)頁(yè)面的信息。
上述代碼中:InputStreamin=file.getInputStream();
List<BrandMobileInfoEntity>BrandMobileInfos=brandService
.importBrandPeriodSort(in);讀取excel的信息。
(2)使用poi讀取excel
a.更新數(shù)據(jù)庫(kù)
@Override
publicList<BrandMobileInfoEntity>importBrandPeriodSort(InputStreamin)throwsException{
List<BrandMobileInfoEntity>brandMobileInfos=readBrandPeriodSorXls(in);
for(BrandMobileInfoEntitybrandMobileInfo:brandMobileInfos){
mapper.updateByConditions(brandMobileInfo);
}
returnbrandMobileInfos;
}
這部分是sevice層的代碼,用于讀取excel信息之后更新數(shù)據(jù)庫(kù)數(shù)據(jù),我這里是使用mybatis。定義一個(gè)類BrandMobileInfoEntity,用與保存excel表每一行的信息,而List<BrandMobileInfoEntity>則保存了全部信息,利用這些信息對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新。
b.讀取excel信息
privateList<BrandMobileInfoEntity>readBrandPeriodSorXls(InputStreamis)
throwsIOException,ParseException{
HSSFWorkbookhssfWorkbook=newHSSFWorkbook(is);
List<BrandMobileInfoEntity>brandMobileInfos=newArrayList<BrandMobileInfoEntity>();
BrandMobileInfoEntitybrandMobileInfo;
//循環(huán)工作表Sheet
for(intnumSheet=0;
numSheet<hssfWorkbook.getNumberOfSheets();numSheet++){
HSSFSheethssfSheet=hssfWorkbook.getSheetAt(numSheet);
if(hssfSheet==null){
continue;
}
//循環(huán)行Row
for(introwNum=1;rowNum<=hssfSheet.getLastRowNum();rowNum++){
brandMobileInfo=newBrandMobileInfoEntity();
HSSFRowhssfRow=hssfSheet.getRow(rowNum);
for(inti=0;i<hssfRow.getLastCellNum();i++){
HSSFCellbrandIdHSSFCell=hssfRow.getCell(i);
if(i==0){
brandMobileInfo.setBrandId(Integer
.parseInt(getCellValue(brandIdHSSFCell)));
}elseif(i==1){
continue;
}elseif(i==2){
brandMobileInfo.setMobileShowFrom(Integer.parseInt(getCellValue(brandIdHSSFCell)));
}elseif(i==3){
brandMobileInfo.setMobileShowTo(Integer.parseInt(getCellValue(brandIdHSSFCell)));
}elseif(i==4){
brandMobileInfo.setSellMarkValue(getCellValue(brandIdHSSFCell));
}elseif(i==5){
brandMobileInfo.setWarehouse(getCellValue(brandIdHSSFCell));
}elseif(i==
可以用選擇保留小數(shù)點(diǎn)的方法
用“圖表”工具欄建立圖表的操作步驟:(1)單擊“視圖”→“工具欄”→“圖表”菜單命令,調(diào)出“圖表”工具欄;(2)選擇用于創(chuàng)建圖表的數(shù)據(jù),單擊“圖表”工具欄中的“圖表類型”按鈕;(3)單擊“圖表”工具欄中的“圖表類型”按鈕的向下箭頭;(4)選擇所需要的圖表類型,這樣就創(chuàng)建了一個(gè)嵌入式圖表。
Excel是一共有九種不同類型的圖表的,但常用的也就四種,它們分別是柱形圖、條形圖、折線圖以及餅圖。一、創(chuàng)建柱形圖1、將光標(biāo)定位到要?jiǎng)?chuàng)建圖表的數(shù)據(jù)區(qū)域內(nèi),然后切換到“插入”選項(xiàng)卡,在“圖表”組的“柱形圖”下選擇一種需要的柱形圖類型進(jìn)行創(chuàng)建。2、現(xiàn)在工作表中已經(jīng)插入了一個(gè)選擇的柱形圖。二、創(chuàng)建條形圖1、將光標(biāo)定位到表格區(qū)域內(nèi),然后選擇一個(gè)合適的條形圖類型進(jìn)行創(chuàng)建。2、現(xiàn)在工作表中已經(jīng)插入了一個(gè)選擇的條形圖。三、創(chuàng)建折線圖1、將光標(biāo)定位到表格區(qū)域內(nèi),然后選擇一種折線圖插入。2、現(xiàn)在工作表中已經(jīng)插入了一個(gè)選擇的折線圖。四、創(chuàng)建餅圖1、由于一般的餅圖只能表示單個(gè)數(shù)據(jù)的變化,所以選中要?jiǎng)?chuàng)建餅圖的數(shù)據(jù)區(qū)域,然后選擇一種餅圖插入。
excel函數(shù)公式使用教程大全:
1、要使用函數(shù),我們可以直接在公式欄上輸入等號(hào)(=),然后輸入計(jì)算的公式。
2、輸入完成后,點(diǎn)擊回車鍵來(lái)確認(rèn)公式,在單元格里,我們就可以得到計(jì)算后的結(jié)果了。
3、當(dāng)然比較簡(jiǎn)單的公式可以用上面的直接輸入的方法,如果是比較復(fù)雜的函數(shù)公式,我們可以用插入的方法來(lái)添加。選中一個(gè)單元格后,點(diǎn)擊工具欄上的‘插入’--->‘函數(shù)’。
4、在彈出的公式生成器里,我們可以輸入字母來(lái)搜索公式。
5、雙擊搜索出來(lái)的公式,在窗口下方就會(huì)顯示出公式需要的參數(shù)了。
6、在公式參數(shù)的輸入框里,我們選中后,可以直接輸入?yún)?shù)的內(nèi)容,也可以在Excel里點(diǎn)擊選中單元格。
7、同樣的方法,可以輸入第二個(gè)參數(shù)。
8、一樣的是按回車鍵確認(rèn)公式輸入。就可以得到計(jì)算后的結(jié)果了。
9、如果我們對(duì)某個(gè)函數(shù),公式不太會(huì)用,可以點(diǎn)擊選中這個(gè)函數(shù)后,點(diǎn)擊下方的幫助信息,就會(huì)彈出詳細(xì)的說(shuō)明的了。
聲明: 本站一切資源均搜集于互聯(lián)網(wǎng)及網(wǎng)友分享,如果侵犯到你的權(quán)益,及時(shí)聯(lián)系我們刪除該資源
本文分類:本地推廣
瀏覽次數(shù):754次瀏覽
發(fā)布日期:2023-07-15 14:40:08