虛擬貨幣itc
『壹』 the APEC Leaders' Economic Vision Statement 是什麼意思
the APEC Leaders' Economic Vision Statement 是什麼意思
APEC(亞太經濟合作組織)領袖對經濟展望聲明
(HRD WG)
BMN
APEC企業管理網路(人力資源工作小組)
APEC Business Card
APEC商務卡
APEC Business Volunteer Program
APEC商務自願計畫
APEC Center for Entrepreneurship Development
APEC企業家發展中心
APEC Communication and Database System
ACDS
APEC通訊與資料庫系統
APEC Council of Academies Of Applied Sciences and Engineering
APEC-CASE
APEC應用科學與工程學術委員會
Customs Instry Symposium
APEC關務工業研討會
APEC Economic Leaders Meeting
AELM
APEC經濟領袖會議
APEC Economic Leaders Vision Statement
APEC領袖對經濟展望聲明
APEC Ecation Hub
APEC教育中心
APEC Ecation Network
ENet
APEC教育網路
APEC Ecational Foundation
APEC EF
APEC教育基金
APEC Guidebook on Investment Regimes
APEC投資制度指南
APEC Investment Guidebook
APEC投資指南
APEC Leader's Ecation Initiative
ALEI
APEC領袖教育倡議
APEC Non-Binding Investment Principles
APEC NBIP
APEC不具約束力投資原則
APEC Pacific Business Forum
APBF
APEC太平洋企業論壇
APEC Science and Technology Parks Network
APEC科學園區網路
APEC Study Center
ASC
APEC研究中心
APEC Virtual Center for Environmental Technology Exchange
APEC環境計術交換虛擬中心
APEC Voluntary Investment Projects
APEC VIP / AVIP
APEC自願性投資方案
Asia Pacific Information Instry Technology Center
APIITC
亞太資訊產業技術中心
Arab Bank for Economic Development in Africa
BADEA
非洲經濟發展阿拉伯銀行
Arbitration Act 1987
1987年仲裁法
Arbitration Agreement
仲裁協定
ASEAN Consultative Committee on Standards and Quality
ACCSQ
東南亞國協標准及品質諮詢委員會
ASEAN Free Trade Area
AFTA
東協自由貿易區
ASEAN Regional Forum
ARF
東協區域論壇
ASEAN-EC Energy Management Training and Research Center
AEEMTRC
東南亞國協-歐洲共同體能源管理訓練與研究中心
Asia Coordinating Meetings of Codex
亞洲代碼統合會議
Asia Monetary Fund
AMF
亞洲貨幣基金
Asia Pacific Economic Cooperation
APEC
亞太經濟合作會議
Asia Pacific Investment Institute
APII
亞太投資機構
Asia Pacific Laboratory Accreditation Cooperation
APLAC
亞太實驗室認證合作
Asia Pacific Metrology Forum
APMP
亞太度量衡論壇
Asia Pacific Telecommunity
APT
亞太電信社區
Asia/Pacific Annual International Seminar on Copyright and Neighboring Rights
亞太年度版權與鄰接權國際研討會
Asian Development Bank
ADB
亞洲開發銀行
Asian- Pacific Business Network
APBNet / APB-NET
亞太企業網路
Asian Single Tariff Policy
ASTP
亞洲單一稅則政策
Asia-Pacific Advanced Network
APAN
亞太高等網路
Asia-Pacific Copyright Systems Enhancement
APCSE
亞太版權制度之加強
Asia-Pacific Energy Research Center
APERC
亞太能源研究中心
Asia-Pacific Laboratory Accreditation Conference Mutual Recognition Arrangement
亞太實驗室認證會議相互承認協定
Asset-Backed Securities
資產擔保證券
Association for Overseas Technical Scholarship
AOTS
海外技術獎學金協會
Association of Pacific Rim Universities
APRU
環太平洋大學協會
Association of Southeast Asian Nations
ASEAN
東南亞國家協會(東協)
Asynchronous Transmission Mode Communication Network
非同步傳輸模式通訊網路
ATC (Uruguay Round Agreement on Textiles and Clothing)
烏拉圭回合紡織品與成衣協定
Australia Center for International Commercial Arbitration
ACICA
澳洲國際商業仲裁中心
Australia Commercial Disputes Center
ACDC
澳洲商業爭議中心
Australia/New Zealand Closer Economic Relations Trade Agreement
ANZCERTA
澳紐緊密經濟關系貿易協定
Australian Civil Offsets Agreement
ACOA
澳洲國民補償協定
Australian Competition and Consumer Commission
ACCC
澳洲競爭暨消費者委員會
Australian Quarantine Inspection Service
AQIS
澳洲檢疫措施
Automated Commercial Environment
ACE
自動化商業環境
Automated Commercial System
ACS
自動化商業系統
Automated Entry Processing System
AEPS
自動化輸入處理系統
Automated Export System
AES
自動化出口系統
Automatic Import Licensing
自動進口許可
Automatic Teller Machines
ATMs
自動櫃員機
Balance of Payments Manual
BPM
收支平衡手冊
Bank of International Settlement
BIS
國際清算銀行
Basel Convention
BC
巴賽爾公約
Benchmarking and Diagnostic Tools
檢測標准和診斷工具
Berne Convention for the Protection of Literary and Artistic Works
文學與藝術作品保護伯恩公約
Best Practices Guidelines for IAPs
個別行動計畫最佳推動措施指導綱領
Bilateral Investment Treaties
BITs
雙邊投資協定
Bill of Lading
B/L
提單
BIPM (International Bureau of Weights and Measures)
國際度量衡局
BMN (APEC Business Management Network) (HRD MG)
APEC企業管理網路(人力資源工作小組)
Board of Film Censors
BFC
影片檢查局
Bogor Declaration
BD
茂物宣言
Bonded Warehouse
保稅倉庫
Bonded Zones
保稅特區
Brunei Oil and Gas Authority
BOGA
汶萊石油與天然氣管理局
Brunei Shell Petroleum Company Sdn Bhd
BSP
汶萊蜆殼石油公司
Brussels Definition of Value
BDV
布魯塞爾核價定義
Budapest Treaty on the International Recognition of the Deposit of Microorganisms for the Purposes of Patent Procere
微生物有機體保存專利程序之國際認可布達佩斯協定
Build, Operate, Transfer
BOT
建造-營運-移轉
Build, Own, Operate
BOO
建造-擁有-營運
Bureau of Customs
BOC
關政司
Bureau of Immigration
BOI / BI
移民局
Bureau of Immigration and Deportation
BID
入出境管理局
Bureau of Proct Standards
BPS
商品標准局
Business Facilitation Process
商業便捷流程
Business Facilitation Steering Group
BFSG
商務便捷化推動小組
Business Homepage
商業首頁
Business Management Network
BMN
企業管理網路
Business Practices Act
BPA
商業實施法
Business Travel Handbook
BTH
商務旅行手冊
Business Volunteers Program
BVP
企業義工計畫
Canada-Australia Trade Agreement
CANATA
加澳貿易協定
Caribbean Basin Initiative
CBI
加勒比海盆地倡議
Caribbean Community and Common Market
CARICOM
加勒比海共同體與共同市場
Caribbean Development Bank
CDB
加勒比海開發銀行
Cellular Mobile Telephone Services
CMTS
數據式行動電話服務
Centers for Arbitration
仲裁中心
Central African Customs and Economic Union
UDEAC
中部非洲關稅及經濟聯盟
Central African States Development Bank
BDEAC
中非洲國家開發銀行
Central American Bank for Economic Integration
BCIF
中美洲經濟整合銀行
Central American Common Market
CACM
中美洲共同市場
Central Bank of the Philippines
BSP
菲律賓中央銀行
Central Pharmaceutical Affairs Council
CPAC
中央葯品管理委員會
Centre for Strategic and International Studies
CSIS
戰略與國際研究中心
Certificate of Conformance
符合證明
Certificate of Origin
CO, C/O
原產地證明
Certificates of Quota Eligibility
CQE
配額合格證書
Certification / Registration Bodies
證明/登記團體
Chartered Association of Certified Accounts
CACA
合格會計師協會
Chlorofluorocarbons
CFCs
氟氯碳化物
Clean Report of Findings
CRF
無瑕疵檢驗報告
Cleaner Proction Strategy
清潔生產策略
Codex Alimentarius Commission
CAC
食品標准委員會
Collective Action Plan
CAP
共同行動計畫
Commission on Sustainable Development
永續發展委員會
Committee for the Implementation of Textile Agreements
CITA
紡織品協定執行委員會
Committee of the Whole
COW
全體委員會
Committee on Customs Valuation
CCV
海關估價委員會
Committee on Import and Export
COIE
進出口委員會
Committee on Information, Computer and Communications Policy
ICCP
資訊、電腦、通信政策委員會
Committee on Subsidies and Countervailing Measures
SCM
補貼與平衡措施委員會
Committee on Trade and Investment
CTI
貿易暨投資委員會
Committee on Weights and Measures
CWM
度量衡委員會
Common Effective Preferential Tariff Scheme
CEPT
共同有效優惠關稅計畫
Commonwealth Act
CA
國協法案
Commonwealth Arbitration Assistance Service
CAAS
國協仲裁服務處
Communication Authority of Thailand
CAT
泰國電信局
Community of Asia Pacific Economies
亞太經濟社區
Competition Liberalization
競爭性自由化
Competition Policy
CP
競爭政策
Comprehensive Drug Abuse Prevention and Control Act
CDAPC
預防與管制葯物濫用法案
Computer Reservation systems
CRS
電腦儲存系統
Concentration on Mass Media Ownership
傳播媒體所有權集中
Conference on Labor Issues in Foreign-Affiliated Companies
CLIFC
外商公司勞工問題會議
Conformance Certificates on Laboratory Accreditation
實驗室認證的符合性證明書
Congestion Points
擁塞點
Construction Standards Law
CSL
營建標准法
Consumer Protection Act
CPA
消費者保護法
Controlled Substances Import and Export Act
CSIEA
管制葯品進出口法
Convention for the Protection of Procers of Phonograms Against Unauthorized Duplication of Their Phonograms
音樂製作人反作品被盜錄保護公約
Convention on International Trade in Endangered Species of Wild Fauna and Flora
CITES
瀕臨絕種野生動植物國際貿易公約(華盛頓公約)
Convention on Psychotropic Substances
CPS
精神性葯品公約
Convention on the Recognition and Enforcement of Foreign Arbitral Awards
外國仲裁判斷之承認與執行公約
Convention Treaty of the Metre;La Convention Du Metre
度量衡公約
Core Competence
核心競爭力
Cost, Insurance and Freight Value
C.I.F. Value / CIF
到岸價格∕起岸價格
Council for Mutual Economic Assistance
CMEA
經濟互助委員會
Council for Security Cooperation in Asia Pacific
CSCAP
亞太安全合作理事會
Council of Arab Economic Unity
CAEU
阿拉伯經濟團結會議
Council of the Automated Customs Clearance System for Sea Cargo
海運貨物自動化通關系統委員會
Cross- Border Flow Committee
跨境流通委員會
Cross Cultural Technology
CCT
跨文化科技
Cross-cutting Issues
跨領域議題
Customer Service Standard
CSS
顧客服務准則
Customs Bulletin
CB
關務公告
Customs Control Information System
CCIS
關稅控制資訊系統
Customs Cooperation Council
CCC
關稅合作理事會
Customs Cooperation Fund
CCF
關稅合作基金
Customs Duties
關稅
Customs Proceres
關務程序
Customs Tariff Law
CTL
海關稅則法
Customs Tariff Scheles of Japan
日本海關關稅總表
Customs Valuation Agreement
CVA
關稅估價協定
Data Stream Technology
DST
資料流動科技
Declaration for Strengthening Framework for Economic Cooperation and Development
DSFECD
加強經濟合作發展架構宣言
Declaration on Standards and Conformance Framework
標准與符合性架構宣言
Department of Energy
DOE
能源部
Department of Labor and Employment
DOLE
勞工暨就業部
Department of Tourism
DOT
觀光部
Deregulation
解除管制
Deregulation Action Program
DAP
解除管制行動計劃
Designated Inward Investors
法定對內投資人
Developed Countries
已開發國家
Developing Countries
未開發國家
Development & Cooperation Steering Group
DCSG
開發合作推動小組
Different Customs
DC
差別關稅
Direct Trader Input
DTI
貿易商直接輸入
Director-General of Customs
海關總局長∕海關總稅務司
Discretionary Import Licensing
無條件進口許可
Dispute Mediation
爭端調解
Distance Learning Project
DLP
遠距離學習方案
Distributed Entry Processing System
DEPS
分配入關程序系統
Double Tax Dection
雙重課稅減免
Double Taxation Agreement
DTA
雙重課稅協定
Down Payment
頭期款
Drug Administration Division
葯物管理課
Drug Enforcement Administration
DEA
葯物執行管理局
Duties and Taxes Automated Computation
DTAC
自動化電腦課稅
Early Voluntary Sectoral Liberalization
EVSL
部門提前自由化
East African Development bank
EADB
東非開發銀行
East Asian Economic Caucus
EAEC
東亞經濟圈
East Asian Economic Group
EAEG
東亞經濟集團
Economic & Social Commission for Asia and the Pacific Cooperation
ESCAP
亞太合作經濟與社會委員會
Economic and Technology Cooperation
ECOTECH
經濟與技術合作
Economic Committee
EC
經濟委員會
Economic Development Zone
EDZ
經濟開發區
Economic Infrastructure
經濟基礎建設
Economy /Economies
經濟體
Ecation Forum
EDFOR
教育論壇
ENet (APEC Ecation Network)
APEC教育網路
Electronic Authentication
共同電子辨識
Electronic Commerce
電子商務
Electronic Data Interchange
EDI
電子資料交換
Electronic Database Bulletin Website
EDB Website
電子資料庫布告欄網址
Electronic Document Handling
電子文件處理
Electronic Filing Service
電子檔案服務
Electronic Information Service
電子資訊服務
Electronic Travel Authorities
ETA
電子傳訊權
Emergency (Arbitration) Order 1994
1994年緊急(仲裁)令
Emergency Preparedness in APEC
APEC緊急應變
Eminent Persons Group
EPG
名人小組
Enabling Legislation
權力授予法
Endangered Species Act
ESA
瀕臨絕種動植物法
Endorsed Supplier Arrangement
ESA
認同代理協議
Energy Policy Act
EPACT
能源政策法案
Energy Working Group
EWG
能源工作小組
Entry Processing Division
EPD
入關程序部
Environmental Management Standards
EMS
環境管理標准
Europe Accreditation League
EAL
歐洲認證聯盟
European Community
EC
歐洲共同體
European Economic Community
EEC
歐洲經濟共同體
European Free Trade Association
EFTA
歐洲自由貿易協會
European Investment Bank
EIB
歐洲投資銀行
European Union
EU
歐洲聯盟
Ex-Factory Price
工廠交貨價
Facilitation, Accountability, Consistency, Transparency, Simplification
FACTS
便捷化,
『貳』 如何開發數字貨幣
謝邀~
為何要開發數字貨幣?從中央銀行的角度來看有6個好處:
第一、提升經濟交易活動的便利性和透明度
第二、降低傳統紙幣發行、流通的高昂成本
第三、更好地支持經濟和社會發展
第四、助力普惠金融的全面實現
第五、 減少洗錢、逃漏稅等違法犯罪行為
第六、提升央行對貨幣供給和貨幣流通的控制力
數字貨幣開發步驟:
第一步、
首先我們要從git 上下載某套區塊鏈體系的源碼,比如選擇比特幣的主幹代碼下載好
相關源碼。
同時准備好對應的編譯環境(C + +的建議在Linux)和安裝好對應開發環境和工具。
第二步、
代碼都是需要編譯的,因此需要准備編譯環境和工具,需要下載環境編譯工具、配
好系統環境變數, qt環境等文件,編譯命令在Itc源代碼里的文件里有詳細說明。
不過系統和開發環境的搭建、程序編譯等過程都比較繁瑣,不建議普通用戶自己製作。對於開發人員,第一次可能要預計2-3天的安裝配置時間。
第三步、
拿比特幣開發來說,他是Q的開發環境,下載好源碼並配置好環境後,在QtCreator內打開該比特幣核心的源碼,配置相關文件和編譯器,開始嘗試編譯比特幣核心的客戶端。
第四步、
改造成自己的數字貨幣,打開各個源文件,找到對應的地方調整參數即可,如調整
每個區塊出幣數,總產量,調整難度等等,然後就到最關鍵的點,就是改名為自己的幣名。
想怎麼取名就怎麼取名,別忘記在資源文件夾里替換掉相關圖標。如果一切順利,經過重新
編譯,你的新幣就順利發明了。
對於這個數字貨幣的開發,還是屬於技術比較專業的,因此最好有-個專業的團隊協助。
數字貨幣開發大致需要學習的框架:
1、搭建以太坊私鏈測試環境以及公鏈節點環境配置
2、以太坊中以太幣的交易、確認原理
3、以太坊中json rpc介面
4、以太幣轉賬與提現原理
5、伺服器對接以太坊公鏈介面,自有伺服器存儲業務數據,公鏈存儲交易可匿名數據
6、私鑰的安全處理
以下是開發的代碼示例:
舉例下市場上常用的數字貨幣錢包有:
APP類:kcash、imtokenweb:myEthereumWalletgoogle 瀏覽器插件:metaMask
其中最常用的就是imToken
區塊鏈交易技術概念:
讓我們來看看區塊鏈交易是如何以比特幣為例進行處理的。為了將一定數量的比特幣發送到另一個錢包,您需要以下信息:將資金發送到您的錢包的地址,您想要發送的加密貨幣數量
接收者的錢包的ID。
每筆交易都使用唯一的機密私人密鑰進行簽名。一旦付款由發件人簽署,它就變為公開可用。交易仍需要確認,以便收款人可以得到這筆錢為了確認交易,有必要生成一個新的鏈條塊。
這些塊是通過進行復雜的數學計算來找到唯一的密鑰而生成的。創建一個新塊需要10分鍾,找到該密鑰的人獲得一定數量的硬幣作為獎勵。一旦創建了鏈的新塊,就不可能將其從資料庫中刪除或以某種方式更改信息。因此,區塊鏈交易是最終且不可逆的。
數字貨幣的三大核心優點:
第一點、數字貨幣是公平的貨幣
數字貨幣沒有特定的發行機構,不是由某一國家發行的,僅僅是依靠特定演算法產生的,這就意味著無法通過操縱發行數量來操縱數字貨幣,因此數字貨幣是一種自由的、非國家的貨幣。
我們可以看到現在有許多國家是直接認可了虛擬貨幣,那麼有需求,就需要交易的平台。
我們現在許多想搭建虛擬貨幣交易平台的投資者,為什麼不能去這些地區搭建交易平台呢?搭建虛擬貨幣交易平台,這不就是一個很好的商機嗎?
第二點、數字貨幣的安全系數更高
紙幣的出現雖然方便了我們日常生活中的交易,但是會有被偷盜以及收到的風險。電子貨幣雖然可以避免這些風險,但是會出現諸如被盜刷、等新的問題。
數字貨幣則可以避免以上問題。並且將每一筆交易記錄在網路上進行廣播,是的所有節點都保存全部貨幣的流通信息,這樣任意一個節點在交易之前就可以輕易地發現貨幣的流通。
第三點、數字貨幣的交易可以實現匿名交易
由於沒有傳統銀行開戶和身份認證的過程,數字貨幣是純匿名的。雖然可以根據本地完整的交易記錄查詢到每個賬號的流水信息。
但卻無法知道這個賬號的主人是誰,同樣也沒有任何人有能力操縱他人賬號上的數字貨幣,這樣很好的保護了使用人的隱私。
如果您也在持有交易數字貨幣、外匯黃金原油、合約期貨:
『叄』 2021年itc萬物鏈怎麼樣
itc萬物鏈未來市場潛力巨大。萬物鏈解決了物聯網長期存在的中心化設計,數據被存儲在被中心化機構的中心伺服器,區塊鏈技術與物聯網行業的結合,提供了區塊鏈技術的去中心化思想和技術。但在其他物聯網領域還存在著很多問題,萬物鏈提出了自己的解決方案。
區塊鏈從一項技術,到變成一個紅極一時的關鍵詞,從精英到大媽,從大佬到草根,似乎所有人都可以從區塊鏈中收獲財富,實現抱負。 從 coinmarketcap 數據來看,區塊鏈虛擬貨幣行業的市值從 2017 年初 100 億美金到 2018 年 1 月飆升到 8000 億美金,最近回落到 3000 億美金。
綜合來說:萬物鏈採用PBFT共識的主鏈,結合天生支持高性能的 DAG網路作為側鏈,採用 CPS 的多層架構,致力於構建安全、去中心化的、支持高並發的物聯網操作系統。 萬物鏈的出發點:致力於構建安全、去中心化的、支持高並發的物聯網操作系統。萬物鏈清晰的判斷了物聯網的市場規模以及物聯網的市場痛點,並提出了完整詳細的解決方案。對市場規模及市場痛點十分清晰,解決方案成熟,項目主要針對公用設施的自動化控制;明確代幣用途,項目定位明確,未來市場潛力巨大,且萬物鏈對標IOTA,萬物鏈在硬體和軟體方面都強於IOTA,IOTA偏向於底層,評級為高。
用戶對隱私和數據的需求會極大增加,集中式的身份體系已經不能滿足需求,ITC萬物鏈認為分布式身份將會是鏈接實體世界和虛擬世界的橋梁,在下一個數字爆發的時代,我們需要分布式身份控制自己的數據,選擇自己的服務。我們不再以服務為中心,更多的是要以用戶為中心。 而且隨著邊緣計算的崛起,邊緣的計算能力在增加,我們可以在數據流向服務之前做好數據的隱私保護和處理。
『肆』 springMVC怎麼把結果集寫入Excel並導出
一、讓不同類型數據用不同顏色顯示
在工資表中,如果想讓大於等於2000元的工資總額以「紅色」顯示,大於等於1500元的工資總額以「藍色」顯示,低於1000元的工資總額以「棕色」顯示,其它以「黑色」顯示,我們可以這樣設置。
1.打開「工資表」工作簿,選中「工資總額」所在列,執行「格式→條件格式」命令,打開「條件格式」對話框。單擊第二個方框右側的下拉按鈕,選中「大於或等於」選項,在後面的方框中輸入數值「2000」。單擊「格式」按鈕,打開「單元格格式」對話框,將「字體」的「顏色」設置為「紅色」。
2.按「添加」按鈕,並仿照上面的操作設置好其它條件(大於等於1500,字體設置為「藍色」;小於1000,字體設置為「棕色」)。
3.設置完成後,按下「確定」按鈕。
看看工資表吧,工資總額的數據是不是按你的要求以不同顏色顯示出來了。
二、建立分類下拉列表填充項
我們常常要將企業的名稱輸入到表格中,為了保持名稱的一致性,利用「數據有效性」功能建了一個分類下拉列表填充項。
1.在Sheet2中,將企業名稱按類別(如「工業企業」、「商業企業」、「個體企業」等)分別輸入不同列中,建立一個企業名稱資料庫。
2.選中A列(「工業企業」名稱所在列),在「名稱」欄內,輸入「工業企業」字元後,按「回車」鍵進行確認。
仿照上面的操作,將B、C……列分別命名為「商業企業」、「個體企業」……
3.切換到Sheet1中,選中需要輸入「企業類別」的列(如C列),執行「數據→有效性」命令,打開「數據有效性」對話框。在「設置」標簽中,單擊「允許」右側的下拉按鈕,選中「序列」選項,在下面的「來源」方框中,輸入「工業企業」,「商業企業」,「個體企業」……序列(各元素之間用英文逗號隔開),確定退出。
再選中需要輸入企業名稱的列(如D列),再打開「數據有效性」對話框,選中「序列」選項後,在「來源」方框中輸入公式:=INDIRECT(C1),確定退出。
4.選中C列任意單元格(如C4),單擊右側下拉按鈕,選擇相應的「企業類別」填入單元格中。然後選中該單元格對應的D列單元格(如D4),單擊下拉按鈕,即可從相應類別的企業名稱列表中選擇需要的企業名稱填入該單元格中。
提示:在以後列印報表時,如果不需要列印「企業類別」列,可以選中該列,右擊滑鼠,選「隱藏」選項,將該列隱藏起來即可。
三、建立「常用文檔」新菜單
在菜單欄上新建一個「常用文檔」菜單,將常用的工作簿文檔添加到其中,方便隨時調用。
1.在工具欄空白處右擊滑鼠,選「自定義」選項,打開「自定義」對話框。在「命令」標簽中,選中「類別」下的「新菜單」項,再將「命令」下面的「新菜單」拖到菜單欄。
按「更改所選內容」按鈕,在彈出菜單的「命名」框中輸入一個名稱(如「常用文檔」)。
2.再在「類別」下面任選一項(如「插入」選項),在右邊「命令」下面任選一項(如「超鏈接」選項),將它拖到新菜單(常用文檔)中,並仿照上面的操作對它進行命名(如「工資表」等),建立第一個工作簿文檔列表名稱。
重復上面的操作,多添加幾個文檔列表名稱。
3.選中「常用文檔」菜單中某個菜單項(如「工資表」等),右擊滑鼠,在彈出的快捷菜單中,選「分配超鏈接→打開」選項,打開「分配超鏈接」對話框。通過按「查找范圍」右側的下拉按鈕,定位到相應的工作簿(如「工資.xls」等)文件夾,並選中該工作簿文檔。
重復上面的操作,將菜單項和與它對應的工作簿文檔超鏈接起來。
4.以後需要打開「常用文檔」菜單中的某個工作簿文檔時,只要展開「常用文檔」菜單,單擊其中的相應選項即可。
提示:盡管我們將「超鏈接」選項拖到了「常用文檔」菜單中,但並不影響「插入」菜單中「超鏈接」菜單項和「常用」工具欄上的「插入超鏈接」按鈕的功能。
四、製作「專業符號」工具欄
在編輯專業表格時,常常需要輸入一些特殊的專業符號,為了方便輸入,我們可以製作一個屬於自己的「專業符號」工具欄。
1.執行「工具→宏→錄制新宏」命令,打開「錄制新宏」對話框,輸入宏名?如「fuhao1」?並將宏保存在「個人宏工作簿」中,然後「確定」開始錄制。選中「錄制宏」工具欄上的「相對引用」按鈕,然後將需要的特殊符號輸入到某個單元格中,再單擊「錄制宏」工具欄上的「停止」按鈕,完成宏的錄制。
仿照上面的操作,一一錄制好其它特殊符號的輸入「宏」。
2.打開「自定義」對話框,在「工具欄」標簽中,單擊「新建」按鈕,彈出「新建工具欄」對話框,輸入名稱——「專業符號」,確定後,即在工作區中出現一個工具條。
切換到「命令」標簽中,選中「類別」下面的「宏」,將「命令」下面的「自定義按鈕」項拖到「專業符號」欄上(有多少個特殊符號就拖多少個按鈕)。
3.選中其中一個「自定義按鈕」,仿照第2個秘技的第1點對它們進行命名。
4.右擊某個命名後的按鈕,在隨後彈出的快捷菜單中,選「指定宏」選項,打開「指定宏」對話框,選中相應的宏(如fuhao1等),確定退出。
重復此步操作,將按鈕與相應的宏鏈接起來。
5.關閉「自定義」對話框,以後可以像使用普通工具欄一樣,使用「專業符號」工具欄,向單元格中快速輸入專業符號了。
五、用「視面管理器」保存多個列印頁面
有的工作表,經常需要列印其中不同的區域,用「視面管理器」吧。
1.打開需要列印的工作表,用滑鼠在不需要列印的行(或列)標上拖拉,選中它們再右擊滑鼠,在隨後出現的快捷菜單中,選「隱藏」選項,將不需要列印的行(或列)隱藏起來。
2.執行「視圖→視面管理器」命令,打開「視面管理器」對話框,單擊「添加」按鈕,彈出「添加視面」對話框,輸入一個名稱(如「上報表」)後,單擊「確定」按鈕。
3.將隱藏的行(或列)顯示出來,並重復上述操作,「添加」好其它的列印視面。
4.以後需要列印某種表格時,打開「視面管理器」,選中需要列印的表格名稱,單擊「顯示」按鈕,工作表即刻按事先設定好的界面顯示出來,簡單設置、排版一下,按下工具欄上的「列印」按鈕,一切就OK了。
六、讓數據按需排序
如果你要將員工按其所在的部門進行排序,這些部門名稱既的有關信息不是按拼音順序,也不是按筆畫順序,怎麼辦?可採用自定義序列來排序。
1.執行「格式→選項」命令,打開「選項」對話框,進入「自定義序列」標簽中,在「輸入序列」下面的方框中輸入部門排序的序列(如「機關,車隊,一車間,二車間,三車間」等),單擊「添加」和「確定」按鈕退出。
2.選中「部門」列中任意一個單元格,執行「數據→排序」命令,打開「排序」對話框,單擊「選項」按鈕,彈出「排序選項」對話框,按其中的下拉按鈕,選中剛才自定義的序列,按兩次「確定」按鈕返回,所有數據就按要求進行了排序。
七、把數據徹底隱藏起來
工作表部分單元格中的內容不想讓瀏覽者查閱,只好將它隱藏起來了。
1.選中需要隱藏內容的單元格(區域),執行「格式→單元格」命令,打開「單元格格式」對話框,在「數字」標簽的「分類」下面選中「自定義」選項,然後在右邊「類型」下面的方框中輸入「;;;」(三個英文狀態下的分號)。
2.再切換到「保護」標簽下,選中其中的「隱藏」選項,按「確定」按鈕退出。
3.執行「工具→保護→保護工作表」命令,打開「保護工作表」對話框,設置好密碼後,「確定」返回。
經過這樣的設置以後,上述單元格中的內容不再顯示出來,就是使用Excel的透明功能也不能讓其現形。
提示:在「保護」標簽下,請不要清除「鎖定」前面復選框中的「∨」號,這樣可以防止別人刪除你隱藏起來的數據。
八、讓中、英文輸入法智能化地出現
在編輯表格時,有的單元格中要輸入英文,有的單元格中要輸入中文,反復切換輸入法實在不方便,何不設置一下,讓輸入法智能化地調整呢?
選中需要輸入中文的單元格區域,執行「數據→有效性」命令,打開「數據有效性」對話框,切換到「輸入法模式」標簽下,按「模式」右側的下拉按鈕,選中「打開」選項後,「確定」退出。
以後當選中需要輸入中文的單元格區域中任意一個單元格時,中文輸入法(輸入法列表中的第1個中文輸入法)自動打開,當選中其它單元格時,中文輸入法自動關閉。
九、讓「自動更正」輸入統一的文本
你是不是經常為輸入某些固定的文本,如《電腦報》而煩惱呢?那就往下看吧。
1.執行「工具→自動更正」命令,打開「自動更正」對話框。
2.在「替換」下面的方框中輸入「pcw」(也可以是其他字元,「pcw」用小寫),在「替換為」下面的方框中輸入「《電腦報》」,再單擊「添加」和「確定」按鈕。
3.以後如果需要輸入上述文本時,只要輸入「pcw」字元?此時可以不考慮「pcw」的大小寫?,然後確認一下就成了。
十、在Excel中自定義函數
Excel函數雖然豐富,但並不能滿足我們的所有需要。我們可以自定義一個函數,來完成一些特定的運算。下面,我們就來自定義一個計算梯形面積的函數:
1.執行「工具→宏→Visual Basic編輯器」菜單命令(或按「Alt+F11」快捷鍵),打開Visual Basic編輯窗口。
2.在窗口中,執行「插入→模塊」菜單命令,插入一個新的模塊——模塊1。
3.在右邊的「代碼窗口」中輸入以下代碼:
Function V(a,b,h)V = h*(a+b)/2End Function
4.關閉窗口,自定義函數完成。
以後可以像使用內置函數一樣使用自定義函數。
提示:用上面方法自定義的函數通常只能在相應的工作簿中使用。
十一、表頭下面襯張圖片
為工作表添加的背景,是襯在整個工作表下面的,能不能只襯在表頭下面呢?
1.執行「格式→工作表→背景」命令,打開「工作表背景」對話框,選中需要作為背景的圖片後,按下「插入」按鈕,將圖片襯於整個工作表下面。
2.在按住Ctrl鍵的同時,用滑鼠在不需要襯圖片的單元格(區域)中拖拉,同時選中這些單元格(區域)。
3.按「格式」工具欄上的「填充顏色」右側的下拉按鈕,在隨後出現的「調色板」中,選中「白色」。經過這樣的設置以後,留下的單元格下面襯上了圖片,而上述選中的單元格(區域)下面就沒有襯圖片了(其實,是圖片被「白色」遮蓋了)。
提示?襯在單元格下面的圖片是不支持列印的。
十二、用連字元「&」來合並文本
如果我們想將多列的內容合並到一列中,不需要利用函數,一個小小的連字元「&」就能將它搞定(此處假定將B、C、D列合並到一列中)。
1.在D列後面插入兩個空列(E、F列),然後在D1單元格中輸入公式:=B1&C1&D1。
2.再次選中D1單元格,用「填充柄」將上述公式復制到D列下面的單元格中,B、C、D列的內容即被合並到E列對應的單元格中。
3.選中E列,執行「復制」操作,然後選中F列,執行「編輯→選擇性粘貼」命令,打開「選擇性粘貼」對話框,選中其中的「數值」選項,按下「確定」按鈕,E列的內容(不是公式)即被復制到F列中。
4.將B、C、D、E列刪除,完成合並工作。
提示:完成第1、2步的操作,合並效果已經實現,但此時如果刪除B、C、D列,公式會出現錯誤。故須進行第3步操作,將公式轉換為不變的「值」。
生成績條
常有朋友問「如何列印成績條」這樣的問題,有不少人採取錄制宏或VBA的方法來實現,這對於初學者來說有一定難度。出於此種考慮,我在這里給出一種用函數實現的簡便方法。
此處假定學生成績保存在Sheet1工作表的A1至G64單元格區域中,其中第1行為標題,第2行為學科名稱。
1.切換到Sheet2工作表中,選中A1單元格,輸入公式:=IF(MOD(ROW(),3)=0,″″,IF(0MOD?ROW(),3(=1,sheet1!Aū,INDEX(sheet1!$A:$G,INT(((ROW()+4)/3)+1),COLUMN())))。
2.再次選中A1單元格,用「填充柄」將上述公式復制到B1至G1單元格中;然後,再同時選中A1至G1單元格區域,用「填充柄」將上述公式復制到A2至G185單元格中。
至此,成績條基本成型,下面簡單修飾一下。
3.調整好行高和列寬後,同時選中A1至G2單元格區域(第1位學生的成績條區域),按「格式」工具欄「邊框」右側的下拉按鈕,在隨後出現的邊框列表中,選中「所有框線」選項,為選中的區域添加邊框(如果不需要邊框,可以不進行此步及下面的操作)。
4.同時選中A1至G3單元格區域,點擊「常用」工具欄上的「格式刷」按鈕,然後按住滑鼠左鍵,自A4拖拉至G186單元格區域,為所有的成績條添加邊框。
按「列印」按鈕,即可將成績條列印出來。
十四、Excel幫你選函數
在用函數處理數據時,常常不知道使用什麼函數比較合適。Excel的「搜索函數」功能可以幫你縮小范圍,挑選出合適的函數。
執行「插入→函數」命令,打開「插入函數」對話框,在「搜索函數」下面的方框中輸入要求(如「計數」),然後單擊「轉到」按鈕,系統即刻將與「計數」有關的函數挑選出來,並顯示在「選擇函數」下面的列表框中。再結合查看相關的幫助文件,即可快速確定所需要的函數。
十五、同時查看不同工作表中多個單元格內的數據
有時,我們編輯某個工作表(Sheet1)時,需要查看其它工作表中(Sheet2、Sheet3……)某個單元格的內容,可以利用Excel的「監視窗口」功能來實現。
執行「視圖→工具欄→監視窗口」命令,打開「監視窗口」,單擊其中的「添加監視」按鈕,展開「添加監視點」對話框,用滑鼠選中需要查看的單元格後,再單擊「添加」按鈕。重復前述操作,添加其它「監視點」。
以後,無論在哪個工作表中,只要打開「監視窗口」,即可查看所有被監視點單元格內的數據和相關信息。
十六、為單元格快速畫邊框
在Excel 2002以前的版本中,為單元格區域添加邊框的操作比較麻煩,Excel 2002對此功能進行了全新的拓展。
單擊「格式」工具欄上「邊框」右側的下拉按鈕,在隨後彈出的下拉列表中,選「繪圖邊框」選項,或者執行「視圖→工具欄→邊框」命令,展開「邊框」工具欄。
單擊工具欄最左側的下拉按鈕,選中一種邊框樣式,然後在需要添加邊框的單元格區域中拖拉,即可為相應的單元格區域快速畫上邊框。
提示:①如果畫錯了邊框,沒關系,選中工具欄上的「擦除邊框」按鈕,然後在錯誤的邊框上拖拉一下,就可以清除掉錯誤的邊框。②如果需要畫出不同顏色的邊框,可以先按工具欄右側的「線條顏色」按鈕,在隨後彈出的調色板中選中需要的顏色後,再畫邊框即可。③這一功能還可以在單元格中畫上對角的斜線。
十七、控制特定單元格輸入文本的長度
你能想像當你在該輸入四位數的單元格中卻填入了一個兩位數,或者在該輸入文字的單元格中你卻輸入了數字的時候,Excel就能自動判斷、即時分析並彈出警告,那該多好啊!要實現這一功能,對Excel來說,也並不難。
例如我們將游標定位到一個登記「年份」的單元格中,為了輸入的統一和計算的方便,我們希望「年份」都用一個四位數來表示。所以,我們可以單擊「數據」菜單的「有效性」選項。在「設置」卡片「有效性條件」的「允許」下拉菜單中選擇「文本長度」。然後在「數據」下拉菜單中選擇「等於」,且「長度」為「4」。同時,我們再來到「出錯警告」卡片中,將「輸入無效數據時顯示的出錯警告」設為「停止」,並在「標題」和「錯誤信息」欄中分別填入「輸入文本非法!」和「請輸入四位數年份。」字樣。
很顯然,當如果有人在該單元格中輸入的不是一個四位數時,Excel就會彈出示的警告對話框,告訴你出錯原因,並直到你輸入了正確「樣式」的數值後方可繼續錄入。神奇吧?其實,在Excel的「數據有效性」判斷中,還有許多特殊類型的數據格式可選,比如「文本類型」啊,「序列大小」啊,「時間遠近」啊,如你有興趣,何不自作主張,自己設計一種檢測標准,讓你的Excel展示出與眾不同的光彩呢。
十八、成組填充多張表格的固定單元格
我們知道每次打開Excel,軟體總是默認打開多張工作表。由此就可看出Excel除了擁有強大的單張表格的處理能力,更適合在多張相互關聯的表格中協調工作。要協調關聯,當然首先就需要同步輸入。因此,在很多情況下,都會需要同時在多張表格的相同單元格中輸入同樣的內容。
那麼如何對表格進行成組編輯呢?首先我們單擊第一個工作表的標簽名「Sheet1」,然後按住Shift鍵,單擊最後一張表格的標簽名「Sheet3」(如果我們想關聯的表格不在一起,可以按住Ctrl鍵進行點選)。此時,我們看到Excel的標題欄上的名稱出現了「工作組」字樣,我們就可以進行對工作組的編輯工作了。在需要一次輸入多張表格內容的單元格中隨便寫點什麼,我們發現,「工作組」中所有表格的同一位置都顯示出相應內容了。
但是,僅僅同步輸入是遠遠不夠的。比如,我們需要將多張表格中相同位置的數據統一改變格式該怎麼辦呢?首先,我們得改變第一張表格的數據格式,再單擊「編輯」菜單的「填充」選項,然後在其子菜單中選擇「至同組工作表」。這時,Excel會彈出「填充成組工作表」的對話框,在這里我們選擇「格式」一項,點「確定」後,同組中所有表格該位置的數據格式都改變了。
十九、改變文本的大小寫
在Excel中,為表格處理和數據運算提供最強大支持的不是公式,也不是資料庫,而是函數。不要以為Excel中的函數只是針對數字,其實只要是寫進表格中的內容,Excel都有對它編輯的特殊函數。例如改變文本的大小寫。
在Excel 2002中,至少提供了三種有關文本大小寫轉換的函數。它們分別是:「=UPPER(源數據格)」,將文本全部轉換為大寫;「=LOWER(源數據格)」,將文本全部轉換成小寫;「=PROPER(源數據格)」,將文本轉換成「適當」的大小寫,如讓每個單詞的首字母為大寫等。例如,我們在一張表格的A1單元格中輸入小寫的「excel」,然後在目標單元格中輸入「=UPPER(A1)」,回車後得到的結果將會是「EXCEL」。同樣,如果我們在A3單元格中輸入「mr.weiwei」,然後我們在目標單元格中輸入「=PROPER(A3)」,那麼我們得到的結果就將是「Mr.Weiwei」了。
二十、提取字元串中的特定字元
除了直接輸入外,從已存在的單元格內容中提取特定字元輸入,絕對是一種省時又省事的方法,特別是對一些樣式雷同的信息更是如此,比如員工名單、籍貫等信息。
如果我們想快速從A4單元格中提取稱謂的話,最好使用「=RIGHT(源數據格,提取的字元數)」函數,它表示「從A4單元格最右側的字元開始提取2個字元」輸入到此位置。當然,如果你想提取姓名的話,則要使用「=LEFT(源數據格,提取的字元數)」函數了。還有一種情況,我們不從左右兩端開始,而是直接從數據中間提取幾個字元。比如我們要想從A5單元格中提取「武漢」兩個字時,就只須在目標單元格中輸入「=MID(A5,4,2)」就可以了。意思是:在A5單元格中提取第4個字元後的兩個字元,也就是第4和第5兩個字。
二十一、把基數詞轉換成序數詞將英文的基數詞轉換成序數詞是一個比較復雜的問題。因為它沒有一個十分固定的模式:大多數的數字在變成序數詞都是使用的「th」後綴,但大凡是以「1」、「2」、「3」結尾的數字卻分別是以「st」、「nd」和「rd」結尾的。而且,「11」、「12」、「13」這3個數字又不一樣,它們卻仍然是以「th」結尾的。因此,實現起來似乎很復雜。其實,只要我們理清思路,找准函數,只須編寫一個公式,就可輕松轉換了。不信,請看:「=A2&IF(OR(VALUE(RIGHT(A2,2))={11,12,13}),″th″,IF(OR(VALUE(RIGHT(A2))={1,2,3,},CHOOSE(RIGHT(A2),″st″,″nd″,″rd″),″th″))」。該公式盡管一長串,不過含義卻很明確:①如果數字是以「11」、「12」、「13」結尾的,則加上「th」後綴;②如果第1原則無效,則檢查最後一個數字,以「1」結尾使用「st」、以「2」結尾使用「nd」、以「3」結尾使用「rd」;③如果第1、2原則都無效,那麼就用「th」。因此,基數詞和序數詞的轉換實現得如此輕松和快捷。
二十二、用特殊符號補齊位數
和財務打過交道的人都知道,在賬面填充時有一種約定俗成的「安全填寫法」,那就是將金額中的空位補齊,或者在款項數據的前面加上「$」之類的符號。其實,在Excel中也有類似的輸入方法,那就是「REPT」函數。它的基本格式是「=REPT(「特殊符號」,填充位數)」。
比如,我們要在中A2單元格里的數字結尾處用「#」號填充至16位,就只須將公式改為「=(A2&REPT(″#″,16-LEN(A2)))」即可;如果我們要將A3單元格中的數字從左側用「#」號填充至16位,就要改為「=REPT(″#″,16-LEN(A3)))&A3」;另外,如果我們想用「#」號將A4中的數值從兩側填充,則需要改為「=REPT(″#″,8-LEN(A4)/2)&A4&REPT(″#″)8-LEN(A4)/2)」;如果你還嫌不夠專業,要在A5單元格數字的頂頭加上「$」符號的話,那就改為:「=(TEXT(A5,″$#,##0.00″(&REPT(″#″,16-LEN(TEXT(A5,″$#,##0.00″))))」,一定能滿足你的要求。
二十三、創建文本直方圖
除了重復輸入之外,「REPT」函數另一項衍生應用就是可以直接在工作表中創建由純文本組成的直方圖。它的原理也很簡單,就是利用特殊符號的智能重復,按照指定單元格中的計算結果表現出長短不一的比較效果。
比如我們首先製作一張年度收支平衡表,然後將「E列」作為直方圖中「預算內」月份的顯示區,將「G列」則作為直方圖中「超預算」的顯示區。然後根據表中已有結果「D列」的數值,用「Wingdings」字體的「N」字元表現出來。具體步驟如下:
在E3單元格中寫入公式「=IF(D30,REPT(″n″,ROUND(D3*100,0)),″″)」,也拖動填充柄至G14。我們看到,一個沒有動用Excel圖表功能的純文本直方圖已展現眼前,方便直觀,簡單明了。
二十四、計算單元格中的總字數
有時候,我們可能對某個單元格中字元的數量感興趣,需要計算單元格中的總字數。要解決這個問題,除了利用到「SUBSTITUTE」函數的虛擬計算外,還要動用「TRIM」函數來刪除空格。比如現在A1單元格中輸入有「how many words?」字樣,那麼我們就可以用如下的表達式來幫忙:
「=IF(LEN(A1)=0,0,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),″,″,″″))+1)」
該式的含義是先用「SUBSTITUTE」函數創建一個新字元串,並且利用「TRIM」函數刪除其中字元間的空格,然後計算此字元串和原字元串的數位差,從而得出「空格」的數量,最後將空格數+1,就得出單元格中字元的數量了。
二十五、關於歐元的轉換
這是Excel 2002中的新工具。如果你在安裝Excel 2002時選擇的是默認方式,那麼很可能不能在「工具」菜單中找到它。不過,我們可以先選擇「工具」菜單中的「載入宏」,然後在彈出窗口中勾選「歐元工具」選項,「確定」後Excel 2002就會自行安裝了。
完成後我們再次打開「工具」菜單,單擊「歐元轉換」,一個獨立的專門用於歐元和歐盟成員國貨幣轉換的窗口就出現了。與Excel的其他函數窗口一樣,我們可以通過滑鼠設置貨幣轉換的「源區域」和「目標區域」,然後再選擇轉換前後的不同幣種即可。所示的就是「100歐元」分別轉換成歐盟成員國其他貨幣的比價一覽表。當然,為了使歐元的顯示更顯專業,我們還可以點擊Excel工具欄上的「歐元」按鈕,這樣所有轉換後的貨幣數值都是歐元的樣式了。
『伍』 springMVC怎麼把結果集寫入Excel並導出
首先要導入spring相關包,poi,和fileupload包,我是使用maven構建的。
一.導入excel
(1)使用spring上傳文件
a.前台頁面提交
<form name="excelImportForm" action="${pageContext.request.contextPath}/brand/importBrandSort" method="post" onsubmit="return checkImportPath();" enctype="multipart/form-data" id="excelImportForm">
<input type="hidden" name="ids" id="ids">
<div class="modal-body">
<div class="row gap">
<label class="col-sm-7 control-label"><input class="btn btn-default" id="excel_file" type="file" name="filename" accept="xls"/></label>
<div class="col-sm-3">
<input class="btn btn-primary" id="excel_button" type="submit" value="導入Excel"/>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" onClick="uncheckBoxes();">取消</button>
</div>
b.後台spring的controller進行相關操作,這里主要講的是使用spring上傳文件,和讀取文件信息。
使用spring上傳文件之前,需要配置bean。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>@RequestMapping(value = "/importBrandSort", method = RequestMethod.POST)
public ModelAndView importBrandSort(@RequestParam("filename") MultipartFile file,
HttpServletRequest request,HttpServletResponse response) throws Exception {
String temp = request.getSession().getServletContext()
.getRealPath(File.separator)
+ "temp"; // 臨時目錄
File tempFile = new File(temp);
if (!tempFile.exists()) {
tempFile.mkdirs();
}
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(10 * 1024 * 1024); // 設置允許用戶上傳文件大小,單位:位
fu.setSizeThreshold(4096); // 設置最多隻允許在內存中存儲的數據,單位:位
fu.setRepositoryPath(temp); // 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
// 開始讀取上傳信息
//
int index = 0;
/* List fileItems = null;
try {
fileItems = fu.parseRequest(request);
}
catch (Exception e) {
e.printStackTrace();
}
Iterator iter = fileItems.iterator(); // 依次處理每個上傳的文件
FileItem fileItem = null;
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
fileItem = item;
// index++;
}
}
if (fileItem == null)
return null;
*/
if (file == null)
return null;
logger.info(file.getOriginalFilename());
String name = file.getOriginalFilename();// 獲取上傳文件名,包括路徑
//name = name.substring(name.lastIndexOf("\\") + 1);// 從全路徑中提取文件名
long size = file.getSize();
if ((name == null || name.equals("")) && size == 0)
return null;
InputStream in = file.getInputStream();
List<BrandMobileInfoEntity> BrandMobileInfos = brandService
.importBrandPeriodSort(in);
// 改為人工刷新緩存KeyContextManager.clearPeriodCacheData(new
// PeriodDimensions());// 清理所有緩存
int count = BrandMobileInfos.size();
String strAlertMsg ="";
if(count!=0){
strAlertMsg= "成功導入" + count + "條!";
}else {
strAlertMsg = "導入失敗!";
}
logger.info(strAlertMsg);
//request.setAttribute("brandPeriodSortList", BrandMobileInfos);
//request.setAttribute("strAlertMsg", strAlertMsg);
request.getSession().setAttribute("msg",strAlertMsg);
return get(request, response);
//return null;
}
代碼中的注釋部分是如果不使用spring的方式,如何拿到提交過來的文件名(需要是要apache的一些工具包),其實使用spring的也是一樣,只是已經做好了封裝,方便我們寫代碼。
代碼中的後半部分是讀取完上傳文文件的信息和對資料庫進行更新之後,輸出到前台頁面的信息。
上述代碼中: InputStream in = file.getInputStream();
List<BrandMobileInfoEntity> BrandMobileInfos = brandService
.importBrandPeriodSort(in);讀取excel的信息。
(2)使用poi讀取excel
a.更新資料庫
@Override
public List<BrandMobileInfoEntity> importBrandPeriodSort(InputStream in) throws Exception {
List<BrandMobileInfoEntity> brandMobileInfos = readBrandPeriodSorXls(in);
for (BrandMobileInfoEntity brandMobileInfo : brandMobileInfos) {
mapper.updateByConditions(brandMobileInfo);
}
return brandMobileInfos;
}
這部分是sevice層的代碼,用於讀取excel信息之後更新資料庫數據,我這里是使用mybatis。定義一個類BrandMobileInfoEntity,用與保存excel表每一行的信息,而List< BrandMobileInfoEntity > 則保存了全部信息,利用這些信息對資料庫進行更新。
b.讀取excel信息
private List<BrandMobileInfoEntity> readBrandPeriodSorXls(InputStream is)
throws IOException, ParseException {
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
List<BrandMobileInfoEntity> brandMobileInfos = new ArrayList<BrandMobileInfoEntity>();
BrandMobileInfoEntity brandMobileInfo;
// 循環工作表Sheet
for (int numSheet = 0;
numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 循環行Row
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
brandMobileInfo = new BrandMobileInfoEntity();
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
for (int i = 0; i < hssfRow.getLastCellNum(); i++) {
HSSFCell brandIdHSSFCell = hssfRow.getCell(i);
if (i == 0) {
brandMobileInfo.setBrandId(Integer
.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 1) {
continue;
} else if (i == 2) {
brandMobileInfo.setMobileShowFrom(Integer.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 3) {
brandMobileInfo.setMobileShowTo(Integer.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 4) {
brandMobileInfo.setSellMarkValue(getCellValue(brandIdHSSFCell));
} else if (i == 5) {
brandMobileInfo.setWarehouse(getCellValue(brandIdHSSFCell));
} else if (i == 6) {
brandMobileInfo.setSortA1(Integer.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 7) {
brandMobileInfo.setSortA2(Integer.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 8) {
brandMobileInfo.setSortB(Integer.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 9) {
brandMobileInfo.setSortC10(Integer.parseInt(getCellValue(brandIdHSSFCell)));
}
else if (i == 10) {
brandMobileInfo.setSortC(Integer.parseInt(getCellValue(brandIdHSSFCell)));
} else if (i == 11) {
brandMobileInfo.setHitA(getCellValue(brandIdHSSFCell));
} else if (i == 12) {
brandMobileInfo.setHitB(getCellValue(brandIdHSSFCell));
} else if (i == 13) {
brandMobileInfo.setHitC(getCellValue(brandIdHSSFCell));
} else if (i == 14) {
brandMobileInfo.setCustomSellType(getCellValue(brandIdHSSFCell));
}else if (i == 15)
{
continue;
}else if (i == 16) {
brandMobileInfo.setChannelId(Integer.parseInt(getCellValue(brandIdHSSFCell)));
}
}
brandMobileInfos.add(brandMobileInfo);
}
}
return brandMobileInfos;
}
這種代碼有點搓,還沒有優化,可以大概看到是怎麼讀取信息的。
(3)使用mybatis更新數據。