① EXCEL有兩個一樣的SHEET,如何能在sheet1中 輸入sheet2的某條數據的ID(索引),直接把該數據全部拿過來
PrivateSubWorkbook_SheetChange(ByValShAsObject,ByValTargetAsRange)
Application.EnableEvents=False
x=Worksheets.Count
ForEachrInTarget
Ifr.Column=1Andr<>""Then
Fori=1Tox
IfSheets(i).Name<>Sh.NameThen
Forj=1ToSheets(i).[a65536].End(3).Row
IfSheets(i).Cells(j,1)=rThen
Sheets(i).Rows(j).Cut
r.Select
ActiveSheet.Paste
GoToxxxx
EndIf
Next
EndIf
Next
EndIf
xxxx:
Next
Target.Select
Application.EnableEvents=True
EndSub
打開VBE,將上面代碼考入thisworkbook,假設你的ID在a列,在任意sheet的a列輸入ID,如果這個ID在其他sheet已存在,就會把數據復制到當前行
② 右鍵單擊工作表標簽,可以執行哪些操作
可以進行「復制、粘貼、剪切、插入」等工作。
在計算機中,操作系統是其最基本也是最為重要的基礎性系統軟體。從計算機用戶的角度來說,計算機操作系統體現為其提供的各項服務;從程序員的角度來說,其主要是指用戶登錄的界面或者介面;如果從設計人員的角度來說,就是指各式各樣模塊和單元之間的聯系。
事實上,全新操作系統的設計和改良的關鍵工作就是對體系結構的設計,經過幾十年以來的發展,計算機操作系統已經由一開始的簡單控制循環體發展成為較為復雜的分布式操作系統,再加上計算機用戶需求的愈發多樣化,計算機操作系統已經成為既復雜而又龐大的計算機軟體系統之一。
縱觀計算機之歷史,操作系統與計算機硬體的發展息息相關。操作系統之本意原為提供簡單的工作排序能力,後為輔助更新更復雜的硬體設施而漸漸演化。
從最早的批量模式開始,分時機制也隨之出現,在多處理器時代來臨時,操作系統也隨之添加多處理器協調功能,甚至是分布式系統的協調功能。
其他方面的演變也類似於此。另一方面,個人計算機之操作系統因襲大型機的成長之路,在硬體越來越復雜、強大時,也逐步實現以往只有大型機才有的功能。
以上內容參考:網路-操作
③ 設置將報表連接到Excel資料庫-excel連接資料庫-Excel學習網
我討論了Excel 2007和Excel 2010 Beta中存在的錯誤。以下是該條目的摘要:
當報表工作簿中的Excel范圍名稱引用資料庫工作簿中的表單范圍名稱時,如果先打開報表工作簿,然後再打開資料庫工作簿,則Excel會刪除報表工作簿在資料庫工作簿中引用的所有表單范圍名稱。
如果您不使用工作表范圍的名稱,那麼此建議意義不大。因此,讓我們先討論列印范圍來討論范圍名稱的范圍...
分配列印區域時,實際上是在為工作表分配范圍名稱“ Print_Area”。然後,在列印工作表時,如果已定義,則Excel僅列印Print_Area范圍。
這種方法在早期的Excel中非常有效,當時工作簿只能有一個工作表。但是後來,Microsoft在1993年用Excel 5引入了多頁工作簿。據說,微軟正在向一組
開發人員演示Excel 5的早期版本。其中一個問:“我們現在可以在一個工作簿中放幾張紙。但是我們只能有一個Print_Area范圍名稱。那麼我們如何為工作簿中的每張圖紙分配一個列印區域?”
程序員擠在舞台上,故事走了,最後告訴開發人員:“我們會盡快就此與您聯系。”
程序員想出的是一種限定范圍名稱的方法。即,Excel范圍名稱可以具有工作簿范圍或工作表范圍。若要查看它們的工作原理,假設您定義“ Foo”以引用新工作簿的第1頁的某些范圍。
默認情況下,這將是一個工作簿范圍的名稱。現在,在工作表2中,假設您將工作表的區域定義為“ Sheet2!Foo”。這樣做會將范圍定義為工作表范圍的名稱。
(新Excel中的“新名稱”對話框提供了一個下拉列表框,與以前的Excel版本相比,它使您可以更輕松地指定范圍。)
現在讓我們看看這些名稱是如何工作的……
激活圖紙2.按F5鍵,在“轉到”對話框中輸入“ Foo”作為“參考”,然後按OK。Excel將為工作表2選擇工作表范圍的名稱。
激活圖紙3.再次使用GoTo對話框轉到“ Foo”。這次,Excel將選擇由工作簿作用域名稱定義的范圍,該名稱參考表1。
激活圖紙3.使用“轉到”對話框轉到“ Sheet2!Foo”。這次,Excel將選擇由工作表范圍名稱定義的范圍名稱,該名稱指的是工作表2。
一個工作簿中可以有一個工作簿作用域名稱,但是與工作表一樣多。
這使我們進入了資料庫工作簿……
到目前為止,我建議在資料庫工作簿中使用多個工作表。例如,您可以在名為Actual的工作表中擁有一個資料庫,而在名為Target的工作表中擁有另一個資料庫。
可以為這兩個資料庫分配工作表范圍的名稱Data。使用這種方法,您可以使用以下引用來引用兩個范圍:
= [Database.xls]實際!數據
= [Database.xls]目標!數據
在Excel 2007之前,這種方法非常有效。但是,正如我在博客條目中對Excel漏洞(與Excel 2007(可能還有Excel 2010))中所述的那樣,必須在打開報表工作簿之前打開Database.xls(或Database.xlsx)。如果首先打開報表工作簿,則Excel將在資料庫工作簿中找到報表工作簿所依賴的所有工作表范圍的名稱,然後自動刪除它們。
那麼,解決此錯誤的最佳方法是什麼?
在我的博客文章中,我提供了三種選擇:使用Excel 2003,先打開資料庫工作簿,或者在資料庫工作簿中不要使用工作表范圍的名稱。最後的建議似乎是最好的長期解決方案。
也就是說,當您設置資料庫和報表工作簿時,請按照設置范圍名稱以將報表連接到Excel資料庫,第1部分中的說明來設置資料庫工作簿。然後,當您需要其他資料庫時-用於目標或在不同的時間時間段,
或者邏輯上不同的數據,或者其他任何內容,請在單獨的工作簿中創建這些資料庫。
然後,當您打開報表工作簿時,可以使用“編輯鏈接”對話框打開所有資料庫工作簿。為此……
在New Excel中,選擇“數據”,“連接”,“編輯鏈接” ...
在Classic Excel中,選擇“編輯”,“鏈接” ...
最後,在“編輯鏈接”對話框中,選擇列表中的所有工作簿,然後選擇“開源”。當您這樣做時,Excel將打開所有這些資料庫工作簿。
這是我目前聽到和研究的最好建議。如果我有更好的建議或者讀者這邊有更好的建立,我會一直與大家討論並研究和大家一起分享的。
④ win7自帶計算器切換到「程序員」模式時為什麼無法進行計算
計算器想必大家都用過,不過大多停留在簡單的加減乘除上,不過對於那些經常要和數字打交道的同學們肯定不僅僅限於此,例如三角函數、求和等計算肯定會經常用到,對於這類計算往往有專業的計算器支持,不過價格不菲,也就讓很多人望而卻步。
其實這類專業的計算器一直就在我們的身邊,在我們的眼前,就是正版Win7中自帶的計算器。而下面我們就來介紹一下Win7自帶計算器的功能。
首先在附件中我們可以找打「計算器」程序,打開後發現,Win7自帶的計算器與之前的版本相比還是有些差別的,精緻的視覺效果,顯得更為簡潔大方。
外觀的變化只是Win7計算器中最簡單的一面,而更深層的變化在於其除了有「標准型」和「科學型」兩種計算模式之外,還有「程序員」、「統計信息」等模式,而且值得一提的是,Win7自帶的計算器還具有日期計算、單位轉換、工作表等多種實用計算工具。
那麼如何切換我們想要的計算模式呢?一種方法是直接從「查看」菜單中選擇,另外,我們還可以通過快捷方式「Alt+數字1/2/3/4」來更快速的切換,非常方便。
科學計算器
在科學模式下使用計算器,可以精確到32位數,並可使用運算符來控制優先順序,另外,對於數學函數的功能大致可以分為三類;
三角函數:主要包含了正弦、餘弦等快速計算,另外,按INV功能鍵後,還可以計算其反函數等。
代數函數:這里可以計算我們高中時學過的冪函數、對數函數、指數函數等。
其他:其餘的函數則相對用的比較少一些,比如取整(Int)、圓周率等。
注意事項:
對於需要一個輸入值的函數值時,一般先要輸入參數,再按相應的函數進行計算,而對於有兩個參數需要輸入的情況,則一般先輸入第一個參數,按函數之後再輸入第二個參數之後,按=獲得記過。
程序員計算器
在這個模式下,結果可以精確到64位,不過需要注意的是,該模式下僅支持整數模式,小數則被舍棄。而進制在這里也可以自由更改,而且每一個數字都會在下方用二進制來表示,十分貼心。
工作表計算器
相信有一些用戶日常還會用到汽車租金、油耗等方面的問題,Win7自帶的計算器都能解決,只要切換到工作表模式,然後選擇自己需要的工作表,就可以相應的計算了。
這里我們以油耗計算為例,選擇油耗工作表後(記得選擇公里為單位的模式),只需要輸入相應的公里數和已經使用的燃料,就可以快速的算出每百公里需要的油耗了。
這里簡單介紹了下Win7自帶計算器的使用方法,雖然僅僅是一個小小的計算器,也讓Win7增色不少,同時為大家帶來了更為全面、人性化的使用效果。
⑤ VB製作可以編輯的表格,怎麼才能做到呢(在線等!)
VB是常用的應用軟體開發工具之一,由於VB的報表功能有限,而且一但報表格式發生變化,就得相應修改程序,給應用軟體的維護工作帶來極大的不便。因此有很多程序員現在已經充分利用EXECL的強大報表功來實現報表功能。但由於VB與EXCEL由於分別屬於不同的應用系統,如何把它們有機地結合在一起,是一個值得我們研究的課題。
一、 VB讀寫EXCEL表:
VB本身提自動化功能可以讀寫EXCEL表,其方法如下:
1、在工程中引用Microsoft Excel類型庫:
從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 9.0 Object Library(EXCEL2000),然後選擇"確定"。表示在工程中要引用EXCEL類型庫。
2、在通用對象的聲明過程中定義EXCEL對象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作EXCEL表常用命令:
Set xlApp = CreateObject("Excel.Application") '創建EXCEL對象
Set xlBook = xlApp.Workbooks.Open("文件名") '打開已經存在的EXCEL工件簿文件
xlApp.Visible = True '設置EXCEL對象可見(或不可見)
Set xlSheet = xlBook.Worksheets("表名") '設置活動工作表
xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值
xlSheet.PrintOut '列印工作表
xlBook.Close (True) '關閉工作簿
xlApp.Quit '結束EXCEL對象
Set xlApp = Nothing '釋放xlApp對象
xlBook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏
xlBook.RunAutoMacros (xlAutoClose) '運行EXCEL關閉宏
4、在運用以上VB命令操作EXCEL表時,除非設置EXCEL對象不可見,否則VB程序可繼續執行其它操作,也能夠關閉EXCEL,同時也可對EXCEL進行操作。但在EXCEL操作過程中關閉EXCEL對象時,VB程序無法知道,如果此時使用EXCEL對象,則VB程序會產生自動化錯誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節。
二、 EXCEL的宏功能:
EXCEL提供一個Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點擊右鍵菜單的"插入模塊",則增加一個"模塊1",在此模塊中可以運用Visual Basic語言編寫函數和過程並稱之為宏。其中,EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關閉宏(Sub Auto_Close())。它們的特性是:當用EXCEL打含有啟動宏的工簿時,就會自動運行啟動宏,同理,當關閉含有關閉宏的工作簿時就會自動運行關閉宏。但是通過VB的自動化功能來調用EXCEL工作表時,啟動宏和關閉宏不會自動運行,而需要在VB中通過命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來運行啟動宏和關閉宏。
三、 VB與EXCEL的相互勾通:
充分利用EXCEL的啟動宏和關閉宏,可以實現VB與EXCEL的相互勾通,其方法如下:
在EXCEL的啟動宏中加入一段程序,其功能是在磁碟中寫入一個標志文件,同時在關閉宏中加入一段刪除此標志文件的程序。VB程序在執行時通過判斷此標志文件存在與否來判斷EXCEL是否打開,如果此標志文件存在,表明EXCEL對象正在運行,應該禁止其它程序的運行。如果此標志文件不存在,表明EXCEL對象已被用戶關閉,此時如果要使用EXCEL對象運行,必須重新創建EXCEL對象。
四、舉例:
1、在VB中,建立一個FORM,在其上放置兩個命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然後在其中輸入如下程序:
Dim xlApp As Excel.Application '定義EXCEL類
Dim xlBook As Excel.Workbook '定義工件簿類
Dim xlsheet As Excel.Worksheet '定義工作表類
Private Sub Command1_Click() '打開EXCEL過程
If Dir("D:\temp\excel.bz") = "" Then '判斷EXCEL是否打開
Set xlApp = CreateObject("Excel.Application") '創建EXCEL應用類
xlApp.Visible = True '設置EXCEL可見
Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打開EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打開EXCEL工作表
xlsheet.Activate '激活工作表
xlsheet.Cells(1, 1) = "abc" '給單元格1行駛列賦值
xlBook.RunAutoMacros (xlAutoOpen) 運行EXCEL中的啟動宏
Else
MsgBox ("EXCEL已打開")
End If
End Sub
Private Sub Command2_Click()
If Dir("D:\temp\excel.bz") <> "" Then '由VB關閉EXCEL
xlBook.RunAutoMacros (xlAutoClose) '執行EXCEL關閉宏
xlBook.Close (True) '關閉EXCEL工作簿
xlApp.Quit '關閉EXCEL
End If
Set xlApp = Nothing '釋放EXCEL對象
End
End Sub
2、在D盤根目錄上建立一個名為Temp的子目錄,在Temp目錄下建立一個名為"bb.xls"的EXCEL文件。
3、在"bb.xls"中打開Visual Basic編輯器,在工程窗口中點滑鼠鍵選擇插入模塊,在模塊中輸入入下程序存檔:
Sub auto_open()
Open "d:\temp\excel.bz" For Output As #1 '寫標志文件
Close #1
End Sub
Sub auto_close()
Kill "d:\temp\excel.bz" '刪除標志文件
End Sub
4、運行VB程序,點擊EXCEL按鈕可以打開EXCEL系統,打開EXCEL系統後,VB程序和EXCEL分別屬兩個不同的應用系統,均可同時進行操作,由於系統加了判斷,因此在VB程序中重復點擊EXCEL按鈕時會提示EXCEL已打開。如果在EXCEL中關閉EXCEL後再點EXCEL按鈕,則會重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關閉EXCEL。這樣就實現了VB與EXCEL的無縫連接。
⑥ 如何用Excel控制項製作簡單報表
①報表的概念
這張報表包含了報表的基本元素,即頁眉、頁腳、橫表頭、豎表頭、表頭交叉區、單元格。
頁 眉:位於報表的最上部分。作為報表的描述性信息,概括性的說明報表的名稱、表號、批准機關、批准文號等。
頁 腳:位於報表的最下部分,用於說明報表的其它信息,例如:單位負責人、部門負責人、製表人等信息。
橫表頭:也叫賓欄,位於報表的橫方向的表頭,它是統計的約束條件,也可能是描述信息。對於統計表來說橫表頭是可以分層的,並且上層的條件對它下面各層都起作用。
豎表頭:也叫甲欄,報表豎方向的表頭,它在統計表中與橫表頭起相同的作用,也是統計的約束性條件,也可能是描述性信息。在分層結構中,上層的條件對它下面各層都起作用。
表頭交叉區:在報表的左上角,可以分欄說明報表的橫表頭和豎表頭。
單元格:報表的主體部分。在統計報表中是其相對應橫表頭和豎表頭的兩個條件的統計情況,在查詢表中是橫表頭的查詢信息,也可能是簡單的計算統計結果。單元格內容在新建報表後是空的,要通過統計查詢這一步來填充,在填充後也可以修改。
②Visual Basic中製作報表
Visual Basic中製作報表,通常是用數據環境設計器(Data Environment Designer)與數據報表設計器(Data Report Designer),或者使用第三方產品(如非常有名的Crystal Report)來完成並通過ActiveX控制項輸出。但對於大多數程序員來說,設計報表往往他們費盡心思。然而,我們可以有更簡單的方法來滿足他們的要求。由於Visual Basic的可擴展性,使用和融入Office2000的特性,包括Excel是相當方便的。Excel可以用作OLE伺服器,向外部輸出某些屬性,方法和事件.Visual Basic可以利用這些功能,實現與Excel的集成。下面,我們來具體闡述一個用VB來創建Excel報表的例子。
③Excel對象
微軟的Excel對象模型包括了128個不同的對象,從矩形,文本框等簡單的對象到透視表,圖表等復雜的對象.下面我們簡單介紹一下其中最重要,也是用得最多的四個對象.
A、Application對象
Application對象處於Excel對象層次結構的頂層,表示Excel自身的運行環境.
B、Workbook對象
Workbook對象直接地處於Application對象的下層,表示一個Excel工作薄文件.
C、Worksheet對象
Worksheet對象包含於Workbook對象,表示一個Excel工作表.
D、Range對象
Range對象包含於Worksheet對象,表示Excel工作表中的一個或多個單元格.
④Access2000的報表解決方案
A、在Excel中做一個模板
在用Visual Basic生成Excel報表之前,應先按照用戶的要求在Excel中做好一個模板,包括頁眉,頁腳,表頭等等。
B、在VB中創建Excel對象,打開Excel文件
和其它的第三方控制項一樣,使用之前必須引用或作為部件導入。要在VB中創建和作用Excel對象,就必須先引用Microsoft Excel 9.0 object library。然後我們就可以在VB的編程操作Excel對象了。
關鍵代碼入下:
Dim excelFile As String
excelFile = App.Path & "myReport.xls" 'Excel文件名
'定義Excel的Application對象,Application對象相當於Excel程序
Dim xlApp As Excel.Application
'定義Excel的Workbook對象,Workbook對象相當於Excel文件
Dim xlbook As Excel.Workbook
'定義Excel的Worksheet對象,Worksheet對象相當於Excel文件中的一個表
Dim xlsheet As Excel.Worksheet
'給Application分配內存空間,將其實例化
Set xlApp = New Excel.Application
'創建Application對象
Set xlApp = CreateObject("Excel.Application")
'隱藏被VB打開的Excel程序
xlApp.Visible = False
'打開工作簿,excelFile為一個EXCEL報表文件
Set xlbook = xlApp.Workbooks.Open(excelFile)
'打開Excel工作表
Set xlsheet = xlbook.Worksheets(1)
C、控制Excel工作表,對其進行編輯
如果是通過ADO打開了一個記錄集,想把記錄集中的數據顯示在單元格中,關鍵代碼為:
Do Until rs.EOF
For i = 0 To rs.Fields.Count - 1
xlsheet.Cells(j + 1, i + 1) = rs.Fields(i)
Next
rs.MoveNext
j = j + 1
Loop
⑦ 網站程序員績效考核的指標是什麼呢績效考核表格
網站程序員績效考核的指標是什麼呢?績效考核表格,看看網路文庫就知道了
⑧ java如何輸出xls格式的Excel表格文件
有個開源的東東-jxl.jar,可以到http://sourceforge.net/project/showfiles.php?group_id=79926下載。
一.讀取Excel文件內容
/**讀取Excel文件的內容
* @param file 待讀取的文件
* @return
*/
public static String readExcel(File file){
StringBuffer sb = new StringBuffer();
Workbook wb = null;
try {
//構造Workbook(工作薄)對象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(wb==null)
return null;
//獲得了Workbook對象之後,就可以通過它得到Sheet(工作表)對象了
Sheet[] sheet = wb.getSheets();
if(sheet!=null&&sheet.length>0){
//對每個工作表進行循環
for(int i=0;i<sheet.length;i++){
//得到當前工作表的行數
int rowNum = sheet[i].getRows();
for(int j=0;j<rowNum;j++){
//得到當前行的所有單元格
Cell[] cells = sheet[i].getRow(j);
if(cells!=null&&cells.length>0){
//對每個單元格進行循環
for(int k=0;k<cells.length;k++){
//讀取當前單元格的值
String cellValue = cells[k].getContents();
sb.append(cellValue+" ");
}
}
sb.append(" ");
}
sb.append(" ");
}
}
//最後關閉資源,釋放內存
wb.close();
return sb.toString();
}
二.寫入Excel文件
這里有很多格式了,比如文本內容加粗,加上某些顏色等,可以參考jxl的api,同時還推薦一篇不錯的文章:http://www.ibm.com/developerworks/cn/java/l-javaExcel/?ca=j-t10
/**生成一個Excel文件
* @param fileName 要生成的Excel文件名
*/
public static void writeExcel(String fileName){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook類的工廠方法創建一個可寫入的工作薄(Workbook)對象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//創建一個可寫入的工作表
//Workbook的createSheet方法有兩個參數,第一個是工作表的名稱,第二個是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);
//下面開始添加單元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//這里需要注意的是,在Excel中,第一個參數表示列,第二個表示行
Label labelC = new Label(j, i, "這是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//將生成的單元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
try {
//從內存中寫入文件中
wwb.write();
//關閉資源,釋放內存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
三.在一個Excel文件中查找是否包含某一個關鍵字
/**搜索某一個文件中是否包含某個關鍵字
* @param file 待搜索的文件
* @param keyWord 要搜索的關鍵字
* @return
*/
public static boolean searchKeyWord(File file,String keyWord){
boolean res = false;
Workbook wb = null;
try {
//構造Workbook(工作薄)對象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
return res;
} catch (IOException e) {
return res;
}
if(wb==null)
return res;
//獲得了Workbook對象之後,就可以通過它得到Sheet(工作表)對象了
Sheet[] sheet = wb.getSheets();
boolean breakSheet = false;
if(sheet!=null&&sheet.length>0){
//對每個工作表進行循環
for(int i=0;i<sheet.length;i++){
if(breakSheet)
break;
//得到當前工作表的行數
int rowNum = sheet[i].getRows();
boolean breakRow = false;
for(int j=0;j<rowNum;j++){
if(breakRow)
break;
//得到當前行的所有單元格
Cell[] cells = sheet[i].getRow(j);
if(cells!=null&&cells.length>0){
boolean breakCell = false;
//對每個單元格進行循環
for(int k=0;k<cells.length;k++){
if(breakCell)
break;
//讀取當前單元格的值
String cellValue = cells[k].getContents();
if(cellValue==null)
continue;
if(cellValue.contains(keyWord)){
res = true;
breakCell = true;
breakRow = true;
breakSheet = true;
}
}
}
}
}
}
//最後關閉資源,釋放內存
wb.close();
return res;
}
四.往Excel中插入圖片圖標
插入圖片的實現很容易,參看以下代碼:
/**往Excel中插入圖片
* @param dataSheet 待插入的工作表
* @param col 圖片從該列開始
* @param row 圖片從該行開始
* @param width 圖片所佔的列數
* @param height 圖片所佔的行數
* @param imgFile 要插入的圖片文件
*/
public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
int height, File imgFile){
WritableImage img = new WritableImage(col, row, width, height, imgFile);
dataSheet.addImage(img);
}
以上代碼的注釋已經很清楚了,大概也就不用再解釋了,我們可以用如下程序驗證:
try {
//創建一個工作薄
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//待插入的工作表
WritableSheet imgSheet = workbook.createSheet("Images",0);
//要插入的圖片文件
File imgFile = new File("D:/1.png");
//圖片插入到第二行第一個單元格,長寬各佔六個單元格
insertImg(imgSheet,0,1,6,6,imgFile);
workbook.write();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
但是jxl只支持png格式的圖片,jpg格式和gif格式都不支持
五.插入頁眉頁腳
一般的頁眉頁腳都分為三個部分,左,中,右三部分,利用如下代碼可實現插入頁眉頁腳
/**向Excel中加入頁眉頁腳
* @param dataSheet 待加入頁眉的工作表
* @param left
* @param center
* @param right
*/
public static void setHeader(WritableSheet dataSheet,String left,String center,String right){
HeaderFooter hf = new HeaderFooter();
hf.getLeft().append(left);
hf.getCentre().append(center);
hf.getRight().append(right);
//加入頁眉
dataSheet.getSettings().setHeader(hf);
//加入頁腳
//dataSheet.getSettings().setFooter(hf);
}
我們可以用如下代碼測試該方法:
try {
//創建一個工作薄
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//待插入的工作表
WritableSheet dataSheet = workbook.createSheet("加入頁眉",0);
ExcelUtils.setHeader(dataSheet, "chb", "2007-03-06", "第1頁,共3頁");
workbook.write();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
六偷懶工具設計之sql2Excel
今天在公司陪山東客戶調試,遠程登錄,我在linux下什麼工具都沒有,用ssh登錄伺服器,直接用mysql查詢資料庫,提出記錄中的所有漢字全是亂碼。哎,可惡的公司,不讓我用windows,要不我就可以用putty或者EMS了,我ft!
甚是不爽之下,我決定自己寫個工具了,把客戶資料庫中的數據全部提取並保存到Excel中,這樣我不就可以一目瞭然了嘛,嘿嘿,好吧,那我就寫一個工具吧。
第一部分就是誰都會的jdbc操作,連接資料庫,提取數據集合。
Connection con;
Statement state;
/**初始化連接
* @param serverIp
* @param dataBase
* @param userName
* @param password
* @throws ClassNotFoundException
* @throws SQLException
*/
public void init(String serverIp,String dataBase,String userName,String password) throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
//配置數據源
String url="jdbc:mysql://"+serverIp+"/"+dataBase+"?useUnicode=true&characterEncoding=GB2312";
con=DriverManager.getConnection(url,userName,password);
}
/**得到查詢結果集
* @param sql
* @return
* @throws SQLException
*/
public ResultSet getResultSet(String sql) throws SQLException{
state = con.createStatement();
ResultSet res = state.executeQuery(sql);
return res;
}
/**關閉連接
* @throws SQLException
*/
public void close() throws SQLException{
if(con!=null)
con.close();
if(state!=null)
state.close();
}
第二部分就是把ResultSet中的記錄寫入一個Excel文件
操作Excel,我用的是jxl,不熟的同學可以參考:利用java操作Excel文件
/**將查詢結果寫入Excel文件中
* @param rs
* @param file
* @throws SQLException
*/
public void writeExcel(ResultSet rs,File file) throws SQLException{
WritableWorkbook wwb = null;
try{
//首先要使用Workbook類的工廠方法創建一個可寫入的工作薄(Workbook)對象
wwb = Workbook.createWorkbook(file);
} catch (IOException e){
e.printStackTrace();
}
if(wwb!=null){
WritableSheet ws = wwb.createSheet("sheet1", 0);
int i=0;
while(rs.next()){
Label label1 = new Label(0, i, rs.getString("id"));
Label label2 = new Label(1, i, rs.getString("category"));
try {
ws.addCell(label1);
ws.addCell(label2);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
i++;
}
try {
//從內存中寫入文件中
wwb.write();
//關閉資源,釋放內存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e){
e.printStackTrace();
}
}
}
測試程序:
Sql2Excel se = new Sql2Excel();
try {
se.init("127.0.0.1","mydabase", "root", "1234");
ResultSet rs = se.getResultSet("select id,category from xx ");
se.writeExcel(rs, new File("/root/sql2excel.xls"));
se.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
⑨ 幾個工作表匯總到一張表時提示已被其他用戶以獨占方式打開
你可以用其他的辦公軟體看看能不能打開?有可能是你軟體的問題
⑩ C# NPOI讀取excel如何獲取工作表sheet名字和個數
(stringexcelFilename)
{
stringconnectionString=string.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};JetOLEDB:EngineType=35;ExtendedProperties=Excel8.0;PersistSecurityInfo=False",excelFilename);
DataSetds=newDataSet();
stringtableName;
using(System.Data.OleDb.OleDbConnectionconnection=newSystem.Data.OleDb.OleDbConnection(connectionString))
{
connection.Open();
DataTabletable=connection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);
tableName=table.Rows[0]["Table_Name"].ToString();
stringstrExcel="select*from"+"["+tableName+"]";
OleDbDataAdapteradapter=newOleDbDataAdapter(strExcel,connectionString);
adapter.Fill(ds,tableName);
connection.Close();
}
returnds.Tables[tableName];
}
具體如下:
1、簡介
編程是編寫程序的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,是計算體系按照該計算方式運行,並最終得到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
2、匯編程序
匯編程序。使用匯編語言編寫計算機程序,程序員仍然需要十分熟悉計算機系統的硬體結構,所以從程序設計本身上來看仍然是低效率的、繁瑣的。但正是由於匯編語言與計算機硬體系統關系密切,在某些特定的場合,如對時空效率要求很高的系統核心程序以及實時控製程序等,迄今為止匯編語言仍然是十分有效的程序設計工具。
3、執行原理
計算機對除機器語言以外的源程序不能直接識別、理解和執行,都必須通過某種方式轉換為計算機能夠直接執行的。這種將高級編程硬體程序設計語言編寫的源程序轉換到機器目標程序的方式有兩種:解釋方式和編譯方式。