包含exjshotel源碼的詞條

本文目錄一覽:

求一個記事本的JAVA源代碼

/*

* WriteBoard.java

*

* Created on 2006年12月19日, 下午7:26

*/

/**

*

* @author LecH.giF

*/

import java.awt.datatransfer.*;

import java.awt.event.*;

import java.awt.*;

import java.io.*;

import java.awt.FileDialog;

public class WriteBoard extends java.awt.Frame {

Clipboard clipboard =null;

FileDialog fc = new FileDialog(this);

/** Creates new form WriteBoard */

public WriteBoard() {

clipboard = getToolkit().getSystemClipboard();

initComponents();

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

// editor-fold defaultstate=”collapsed” desc=” Generated Code ”

private void initComponents() {

textArea1 = new java.awt.TextArea();

menuBar1 = new java.awt.MenuBar();

menu1 = new java.awt.Menu();

menuItem1 = new java.awt.MenuItem();

menuItem2 = new java.awt.MenuItem();

menuItem3 = new java.awt.MenuItem();

menuItem4 = new java.awt.MenuItem();

menuItem5 = new java.awt.MenuItem();

menu2 = new java.awt.Menu();

menuItem6 = new java.awt.MenuItem();

menuItem7 = new java.awt.MenuItem();

menuItem8 = new java.awt.MenuItem();

setTitle(“WriteBoard”);

addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent evt) {

exitForm(evt);

}

});

add(textArea1, java.awt.BorderLayout.CENTER);

menu1.setLabel(“Menu”);

menuItem1.setLabel(“\u65b0\u5efa”);

menuItem1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

newText(evt);

}

});

menu1.add(menuItem1);

menuItem2.setLabel(“\u6253\u5f00”);

menuItem2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

open(evt);

}

});

menu1.add(menuItem2);

menuItem3.setLabel(“\u4fdd\u5b58”);

menuItem3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuItem3ActionPerformed(evt);

}

});

menu1.add(menuItem3);

menuItem4.setLabel(“\u53e6\u5b58\u4e3a”);

menuItem4.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuItem4ActionPerformed(evt);

}

});

menu1.add(menuItem4);

menuItem5.setLabel(“\u9000\u51fa”);

menuItem5.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

exit(evt);

}

});

menu1.add(menuItem5);

menuBar1.add(menu1);

menu2.setLabel(“\u7f16\u8f91”);

menuItem6.setLabel(“\u526a\u5207”);

menuItem6.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuItem6ActionPerformed(evt);

}

});

menu2.add(menuItem6);

menuItem7.setLabel(“\u590d\u5236”);

menuItem7.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuItem7ActionPerformed(evt);

}

});

menu2.add(menuItem7);

menuItem8.setLabel(“\u7c98\u8d34”);

menuItem8.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuItem8ActionPerformed(evt);

}

});

menu2.add(menuItem8);

menuBar1.add(menu2);

setMenuBar(menuBar1);

pack();

}// /editor-fold

private void menuItem4ActionPerformed(java.awt.event.ActionEvent evt) {

fc.show();

if(fc.getFile()!=null){

File file = new File(fc.getFile());

try {

PrintWriter pw = new PrintWriter(file);

pw.print(textArea1.getText());

pw.flush();

pw.close();

} catch (FileNotFoundException ex) {

ex.printStackTrace();

}

}

else{

return;

}

}

private void menuItem3ActionPerformed(java.awt.event.ActionEvent evt) {

fc.show();

if(fc.getFile()!=null){

File file = new File(fc.getFile());

try {

PrintWriter pw = new PrintWriter(file);

pw.print(textArea1.getText());

pw.flush();

pw.close();

} catch (FileNotFoundException ex) {

ex.printStackTrace();

}

}

else{

return;

}

}

private void menuItem8ActionPerformed(java.awt.event.ActionEvent evt) {

Transferable contents = clipboard.getContents(this);

DataFlavor flavor = DataFlavor.stringFlavor;

if(contents.isDataFlavorSupported(flavor))

try{

String str;

str=(String)contents.getTransferData(flavor);

textArea1.append(str);

}catch(Exception e){}

}

private void menuItem7ActionPerformed(java.awt.event.ActionEvent evt) {

String temp = this.textArea1.getSelectedText();

StringSelection text = new StringSelection(temp);

clipboard.setContents(text,null);

}

private void menuItem6ActionPerformed(java.awt.event.ActionEvent evt) {

String temp = this.textArea1.getSelectedText();

StringSelection text = new StringSelection(temp);

clipboard.setContents(text,null);

int start = textArea1.getSelectionStart();

int end = textArea1.getSelectionEnd();

textArea1.replaceRange(“”,start,end);

}

private void open(java.awt.event.ActionEvent evt) {

fc.show();

if(fc.getFile()!=null){

File file = new File(fc.getFile());

try {

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

String s;

try {

while((s= br.readLine())!=null){

textArea1.append(s+”\n”);

}

fr.close();

br.close();

} catch (IOException ex) {

ex.printStackTrace();

}

} catch (FileNotFoundException ex) {

ex.printStackTrace();

}

}

else{

return;

}

}

private void newText(java.awt.event.ActionEvent evt) {

this.textArea1.setText(“”);

}

private void exit(java.awt.event.ActionEvent evt) {

System.exit(0);

}

/** Exit the Application */

private void exitForm(java.awt.event.WindowEvent evt) {

System.exit(0);

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new WriteBoard().setVisible(true);

}

});

}

// Variables declaration – do not modify

private java.awt.Menu menu1;

private java.awt.Menu menu2;

private java.awt.MenuBar menuBar1;

private java.awt.MenuItem menuItem1;

private java.awt.MenuItem menuItem2;

private java.awt.MenuItem menuItem3;

private java.awt.MenuItem menuItem4;

private java.awt.MenuItem menuItem5;

private java.awt.MenuItem menuItem6;

private java.awt.MenuItem menuItem7;

private java.awt.MenuItem menuItem8;

private java.awt.TextArea textArea1;

// End of variables declaration

}

C++控制台程序如何把外部參數賦值給變數。求源碼。如: 外部執行 test.ex

下面的程序演示argc和argv的使用:

#includeiostream

using namespace std;

int main(int argc,char **argv){

for(int i=0;iargc;i++)

cout”Argument “i” is “argv[i]endl;

return EXIT_SUCCESS;

}

該程序編譯成功,產生了 test.exe 文件,在命令行下輸入如下命令:

test.exe hello! this is a test!

2016年旅遊網站源碼排行榜

在為你做旅遊網站源碼排行之前,先給你介紹一下什麼是旅遊網站源碼,旅遊網站源碼,也稱為旅遊源代碼。是指為編譯的文本代碼或一個網站的全部源代碼文件,是一系列人類可讀指令。你都把它理解為源文代碼,當前看到的這個網頁來說,其實它就是由一大堆的源碼組成,通過瀏覽器如Google、百度等瀏覽器或伺服器翻譯成我們現在所看見的樣子!這樣相對通俗的解釋你應該都懂吧!下面由是由筆者精心研究、收集、歸納的旅遊網站源碼,為你做一個優先順序排序,希望對你在選擇旅遊網站源碼的時候有所幫助。

Top1

思途旅遊網站源碼(簡稱:思途cms)

推薦指數:★★★★★

思途CMS旅遊網站源碼,是基於LAMP(Linux-Apache-MySQL-PHP)平台設計(系統支持O2O模式、B2B模式、B2B2C模式、B2C模式等等)但是相比其他旅遊源碼來說,它的使用價值已經不僅限於O2O、B2B、B2C、B2B2C等模式了,在完善的源碼基礎上將其功能及可視化界面進行模塊化(單模塊進行封裝),用戶可根據自己的需求對源碼進行模塊化的安裝使用,如:郵輪模塊、供應商模塊、分銷模塊等!都可進行無限的擴展,具有很強的靈活性,源碼無加密支持二次開發,並且每周持續更新,如需自行開發可按照官方提供的標準文檔進行二次開發!源碼中嵌入了營銷推廣系統,營銷推廣系統包含了來源分析功能,網站地圖自動生成,一鍵設置網頁標題、關鍵詞及描述,智能整站檢測死鏈、關鍵詞統計優化功能等。

特點:開源不加密、拓展性強、良好的兼容性、PHP+MySQL運行速度快、模板漂亮,一鍵更換模板。

總結:功能強大,易於推廣、營銷、優化,界面設計前沿,系統可擴展性強,能夠與旅遊業務

良好的結合,適合於中小微旅行社使用,甚至部分大型旅行社也同樣適合。

Top2

Tourex旅遊網站源碼(簡稱:Tourex)

推薦指數:★★★★

Tourex旅遊網站源碼,是一款基於微軟ASP NET平台開發,從運行速度上來說,ASP的相對於主流的PHP語言來說要慢很多,使用相同配置的伺服器運行速度PHP的肯定是更佔優勢,Tourex旅遊網站源碼是由清遠的一家網路公司提供,支持圖片廣告、第三方快捷登陸、簡訊平台介面等等。

TourEx的界面設計遵循國際最新W3C網頁設計標準,在開發時期,經過IE6、IE7、火狐、Opera等主流瀏覽器上進行測試,都能夠保證您網站瀏覽的流暢、完整,TourEx頁面設計遵循標準情況下盡量的減少了各個瀏覽器中存在的差異,系統不會因為不同的瀏覽器受到限制。算是業內裡面相對可以的旅遊源碼之一。

特點:兼容性好、介面較多、代碼規範、模板較為靈活

總結:源碼是加密且不支持二次開發、使用成本較高,時不時的有BUG出現,無擴展性可言、每年都需要續費,如果你是土豪請隨意,後台界面過於傳統老套。

Top3

Tripscms旅遊網站源碼(簡稱:Trips CMS)

推薦指數:★★★

Tripscms旅遊網站管理系統前身是188旅遊網站管理系統,由長沙一家網路科技有限公司開發維護,V1.0於2010年發布,到目前為止最新的版本為V5.8,Tripscms於2012年正式取得國家版權局頒發的計算機軟體著作權 Tripscms旅遊網站管理系統基於PHP+MYSQL開發,全站內置了SEO搜索引擎優化機制,支持用戶後台切換模板,支持生成html、偽靜態、動態預覽三種模式,擁有旅遊網站常用的模塊功能,較為靈活的後台管理功能、靜態頁面生成功能、個性化模塊添加功能、不同欄目自定義風格樣式功能等。

Tripscms旅遊網站管理系統界面陳舊,風格傳統,相比以上源碼來說這一塊不具優勢。

特點:PHP+MySQL運行速度快,兼容性好,自定義風格

總結:系統整體功能、模板都不夠成熟,缺乏新穎,整體風格相對傳統,用戶體驗較差

Top4

樂游通旅遊網站源碼(簡稱:樂游 CMS)

推薦指數:★★

樂游通旅遊網站源碼是一款採用PHP+Mysql架構,擁有個性化模塊添加功能等。樂游通旅遊網站源碼一部分是按旅遊行業的操作習慣設計開發,部分功能是從旅遊企業的實際需求出發,以模塊化功能設計方式,使旅遊企業可以依據自身需求選擇適合自己的管理系統,從而間接的提高管理水平、優化業務運營流程。頁面全部採用DIV+CSS,全站生成存靜態HTML,符合SEO標準,有利於搜索引擎關鍵排名優化。強大的廣告管理系統,幻燈片廣告、頂部下拉廣告、Banner廣告等。後台可按頻道發布圖片、Flash、文字廣告,用於活動宣傳、廣告展示等,適合用於建設地方性旅遊網站或者是小型的旅遊網站。

特點:PHP+MySQL運行速度快,相對Tourex來說更適合優化但是不及思途CMS,自定義廣告

總結:源碼框架規整,部分源碼實現了模塊化標準,不足之處源碼整體沒有系統標準化,相對來講不夠成熟,頁面模板單一,實用性偏低

Top5

網奇E游通旅遊網站源碼(簡稱:網奇E CMS)

推薦指數:★★

「網奇Etrip」旅遊網站源碼,採用ASP.NET2.0語言開發,它集成新聞模塊、專題模塊、酒店模塊、線路模塊、圖片模塊、訂票模板 、SEO優化模塊、簡訊營銷模塊等功能。系統採用三層架構開發,全站可生成存靜態HTML,旅遊網站模板頁面全部採用DIV+CSS,符合SEO標準,有助於搜索引擎關鍵排名優化。

特點:無

總結:網奇平台涉及的源碼系統較多,但是對每一個系統的開發都不夠深入,其中網奇E旅遊通旅遊網站源碼的模板風格及源碼都極為粗糙,ASP NET語言運行速度較PHP+MySQL緩慢,系統BUG較多,基本沒有源碼維護人員

以上信息希望可以幫助你,還望採納,感謝!

在dedecms項目源碼中dede/admin/templets/catalog_main.htm文件中:

首先看:catalog_main.php中引入了require_once(DEDEINC.”/typeunit.class.admin.php”);

然後看:/include/typeunit.class.admin.php

185行if($channel==$id || $lastid==$id || isset($GLOBALS[‘exallct’]) || $cfg_admin_channel==’array’)

它是在這裡判斷的,isset($GLOBALS[‘exallct’])

求解密

首先解密eval(base64_decode(‘JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==’));

結果為:

eval(‘$_X=base64_decode($_X);$_X=strtr($_X,’123456aouie’,’aouie123456′);$_R=ereg_replace(‘__FILE__’,”‘”.$_F.”‘”,$_X);eval($_R);$_R=0;$_X=0;’)

運行上述代碼

$_X=base64_decode($_X);//執行後$_X的值為

?d4v cl1ss=”cl51r”/d4v

d4v 4d=”f22t5r”

d4v 4d=”f22t5rm14n”

1 4d=”f22t5rl2g2″ hr5f=”?php bl2g4nf2(‘3rl’); ?” t4tl5=”?php bl2g4nf2(‘n1m5’); ?”/1

?php 5ch2 str4psl1sh5s(g5t_2pt42n(‘cr55k22_f22t5rl4nkc2d5’)); ?/br?php 5ch2 c2m4cpr5ss_c2pyr4ght(); ? 1 hr5f=”?php 5ch2 h2m5_3rl( ‘/’ ) ?” t4tl5=”?php 5ch2 5sc_1ttr( g5t_bl2g4nf2( ‘n1m5’, ‘d4spl1y’ ) ); ?” r5l=”h2m5″ t1rg5t=”_bl1nk”?php 5ch2 5sc_1ttr( g5t_bl2g4nf2( ‘n1m5’, ‘d4spl1y’ ) ); ?/1 – P2w5r5d by 1 hr5f=”” r5l=”n2f2ll2w” t1rg5t=”_bl1nk”W2rdPr5ss/1 1nd 1 hr5f=”” t1rg5t=”_bl1nk”Cr55K22/1?php 4f (g5t_2pt42n(‘cr55k22_b541n’) == ‘D4spl1y’) { ? – ?php 5ch2 str4psl1sh5s(g5t_2pt42n(‘cr55k22_b541nh12’)); ??php } 5ls5 { } ??php 4f (g5t_2pt42n(‘cr55k22_tj’) == ‘D4spl1y’) { ? – ?php 5ch2 str4psl1sh5s(g5t_2pt42n(‘cr55k22_tjc2d5’)); ??php } 5ls5 { } ?

/d4v

 /d4v

?php wp_f22t5r(); ?

scr4pt typ5=”t5xt/j1v1scr4pt” src=”?php bl2g4nf2(‘t5mpl1t5_d4r5ct2ry’); ?/c2mm5nts-1j1x.js”/scr4pt

scr4pt typ5=”t5xt/j1v1scr4pt” src=”?php bl2g4nf2(‘t5mpl1t5_d4r5ct2ry’); ?/cr55k22.m4n.js?v6.o”/scr4pt

/b2dy

/html

$_X=strtr($_X,’123456aouie’,’aouie123456′);//執行後$_X的值為

?div class=”clear”/div

div id=”footer”

div id=”footermain”

a id=”footerlogo” href=”?php bloginfo(‘url’); ?” title=”?php bloginfo(‘name’); ?”/a

?php echo stripslashes(get_option(‘creekoo_footerlinkcode’)); ?/br?php echo comicpress_copyright(); ? a href=”?php echo home_url( ‘/’ ) ?” title=”?php echo esc_attr( get_bloginfo( ‘name’, ‘display’ ) ); ?” rel=”home” target=”_blank”?php echo esc_attr( get_bloginfo( ‘name’, ‘display’ ) ); ?/a – Powered by a href=”” rel=”nofollow” target=”_blank”WordPress/a and a href=”” target=”_blank”CreeKoo/a?php if (get_option(‘creekoo_beian’) == ‘Display’) { ? – ?php echo stripslashes(get_option(‘creekoo_beianhao’)); ??php } else { } ??php if (get_option(‘creekoo_tj’) == ‘Display’) { ? – ?php echo stripslashes(get_option(‘creekoo_tjcode’)); ??php } else { } ?

/div

 /div

?php wp_footer(); ?

script type=”text/javascript” src=”?php bloginfo(‘template_directory’); ?/comments-ajax.js”/script

script type=”text/javascript” src=”?php bloginfo(‘template_directory’); ?/creekoo.min.js?v1.3″/script

/body

$_R=ereg_replace(‘__FILE__’,”‘”.$_F.”‘”,$_X);//將$_X中的字元串__FILE__替換為當前文件的路徑,並用單引號引起來,原字元串並無可替換內容,故不變

eval($_R);//將上述替換後的內容執行

$_R=0;

$_X=0;

加密的代碼等價於如下代碼

div class=”clear”/div

div id=”footer”

div id=”footermain”

a id=”footerlogo” href=”?php bloginfo(‘url’); ?” title=”?php bloginfo(‘name’); ?”/a

?php echo stripslashes(get_option(‘creekoo_footerlinkcode’)); ?/br?php echo comicpress_copyright(); ? a href=”?php echo home_url( ‘/’ ) ?” title=”?php echo esc_attr( get_bloginfo( ‘name’, ‘display’ ) ); ?” rel=”home” target=”_blank”?php echo esc_attr( get_bloginfo( ‘name’, ‘display’ ) ); ?/a – Powered by a href=”” rel=”nofollow” target=”_blank”WordPress/a and a href=”” target=”_blank”CreeKoo/a?php if (get_option(‘creekoo_beian’) == ‘Display’) { ? – ?php echo stripslashes(get_option(‘creekoo_beianhao’)); ??php } else { } ??php if (get_option(‘creekoo_tj’) == ‘Display’) { ? – ?php echo stripslashes(get_option(‘creekoo_tjcode’)); ??php } else { } ?

/div

 /div

?php wp_footer(); ?

script type=”text/javascript” src=”?php bloginfo(‘template_directory’); ?/comments-ajax.js”/script

script type=”text/javascript” src=”?php bloginfo(‘template_directory’); ?/creekoo.min.js?v1.3″/script

/body

利用VB.NET實現導出DataTable數據到excel中,各位大俠幫幫忙,最好有源碼,謝謝,江湖救急

剛好寫了個Helper類,你試驗一下DataTable2Exce(這個方法代碼如下:

Imports System.IO

Imports System.Data

Imports System.Data.OleDb

Public MustInherit Class ExcelHelper

Private Shared Function buildConnStr(excelFilePath As String) As String

Dim excelFileInfo As New System.IO.FileInfo(excelFilePath)

Dim constr As String

If excelFileInfo.Extension = “.xlsx” Then

constr = String.Format(“Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=’Excel 12.0 Xml;HDR=YES;IMEX=1′”, excelFilePath)

Else

constr = String.Format(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=’Excel 8.0;HDR=Yes;IMEX=1′”, excelFilePath)

End If

Return constr

End Function

‘將datatable導入到excel

Public Shared Function DataTable2Excel(dt As DataTable, excelFilePath As String) As Boolean

If File.Exists(excelFilePath) Then

Throw New Exception(“該文件已經存在!”)

End If

If dt.TableName.Trim.Length = 0 Or dt.TableName.ToLower = “table” Then

dt.TableName = “Sheet1”

End If

Dim colCount As Integer = dt.Columns.Count

Dim pa(colCount – 1) As OleDb.OleDbParameter

Dim tableStructStr As String = “Create Table ” dt.TableName “(“

Dim connString As String = buildConnStr(excelFilePath)

Dim objconn As New OleDbConnection(connString)

Dim objcmd As New OleDbCommand

objcmd.Connection = objconn

Dim dataTypeList As New ArrayList

dataTypeList.Add(“System.Decimal”)

dataTypeList.Add(“System.Double”)

dataTypeList.Add(“System.Int16”)

dataTypeList.Add(“System.Int32”)

dataTypeList.Add(“System.Int64”)

dataTypeList.Add(“System.Single”)

Dim i As Integer = 0

For Each col As DataColumn In dt.Columns

If dataTypeList.IndexOf(col.GetType.ToString) 0 Then

pa(i) = New OleDbParameter(“@” col.ColumnName, OleDbType.Double)

objcmd.Parameters.Add(pa(i))

If i + 1 = colCount Then

tableStructStr += col.ColumnName + ” double)”

Else

tableStructStr += col.ColumnName + ” double,”

End If

Else

pa(i) = New OleDbParameter(“@” col.ColumnName, OleDbType.VarChar)

objcmd.Parameters.Add(pa(i))

If i + 1 = colCount Then

tableStructStr += col.ColumnName + ” VarChar)”

Else

tableStructStr += col.ColumnName + ” VarChar,”

End If

End If

i += 1

Next

Try

objcmd.CommandText = tableStructStr

If objconn.State = ConnectionState.Closed Then objconn.Open()

objcmd.ExecuteNonQuery()

Catch ex As Exception

Throw ex

End Try

Dim InsertSql_1 As String = “Insert into ” + dt.TableName + ” (“

Dim InsertSql_2 As String = ” Values (“

Dim InsertSql As String = “”

For colID As Integer = 0 To colCount – 1 Step 1

If colID + 1 = colCount Then

InsertSql_1 += dt.Columns(colID).ColumnName “)”

InsertSql_2 += “@” + dt.Columns(colID).ColumnName + “)”

Else

InsertSql_1 += dt.Columns(colID).ColumnName + “,”

InsertSql_2 += “@” + dt.Columns(colID).ColumnName + “,”

End If

Next

InsertSql = InsertSql_1 + InsertSql_2

For rowID As Integer = 0 To dt.Rows.Count – 1 Step 1

For colID = 0 To dt.Columns.Count – 1

If pa(colID).DbType = DbType.Double And dt.Rows(rowID)(colID).ToString.Trim = “” Then

pa(colID).Value = 0

Else

pa(colID).Value = dt.Rows(rowID)(colID).ToString.Trim

End If

Next

Try

objcmd.CommandText = InsertSql

objcmd.ExecuteNonQuery()

Catch ex As Exception

Throw ex

End Try

Next

Try

If objconn.State = ConnectionState.Open Then objconn.Close()

Catch exp As Exception

Throw exp

End Try

Return True

End Function

‘ 獲取Excel文件數據表列表Sheets

Public Shared Function GetExcelTables(ExcelFileName As String) As ArrayList

‘Dim sheets As New List(Of String)

‘conn.Open()

‘Dim dt As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)

‘For Each r In dt.Rows

‘ sheets.Add(r(“TABLE_NAME”))

‘Next

‘conn.Close()

‘Return sheets

Dim dt As DataTable

If Not File.Exists(ExcelFileName) Then

Throw New Exception(“指定的Excel文件不存在”)

Return Nothing

End If

Dim tableList As New ArrayList

Using conn As OleDbConnection = New OleDbConnection(buildConnStr(ExcelFileName))

Try

conn.Open()

dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, “TABLE”})

Catch ex As Exception

Throw ex

End Try

For i As Integer = 0 To dt.Rows.Count – 1

Dim tableName As String = dt.Rows(i)(2).ToString.Trim.TrimEnd(“$”)

If tableList.IndexOf(tableName) 0 Then tableList.Add(tableName)

Next

End Using

Return tableList

End Function

‘將Excel文件導出至DataTable(第一行作為表頭)

Public Shared Function InputFromExcel(ExcelFileName As String, TableName As String) As DataTable

If Not File.Exists(ExcelFileName) Then

Throw New Exception(“指定的Excel文件不存在”)

End If

Dim tableList As ArrayList = GetExcelTables(ExcelFileName)

If tableList.IndexOf(TableName) 0 Then

TableName = tableList(0).ToString.Trim

End If

Dim dt As New DataTable

Dim conn As New OleDbConnection(buildConnStr(ExcelFileName))

Dim cmd As New OleDbCommand(“select * from [” TableName “$]”, conn) ‘調試是否需要$

Dim adapter As New OleDbDataAdapter(cmd)

Try

If conn.State = ConnectionState.Closed Then conn.Open()

adapter.Fill(dt)

Catch ex As Exception

Throw ex

Finally

If conn.State = ConnectionState.Open Then conn.Close()

End Try

Return dt

End Function

‘查詢excel文件中的一個數據

Public Shared Function ReadOneDataFromExcel(ExcelFileName As String, TableName As String, sql As String) As Object

If Not File.Exists(ExcelFileName) Then

Throw New Exception(“指定的Excel文件不存在”)

End If

Dim tableList As ArrayList = GetExcelTables(ExcelFileName)

If tableList.IndexOf(TableName) 0 Then

TableName = tableList(0).ToString.Trim

End If

Dim dt As New DataTable

Dim conn As New OleDbConnection(buildConnStr(ExcelFileName))

Dim cmd As New OleDbCommand(sql, conn) ‘調試是否需要$

Dim ret As Object

Try

If conn.State = ConnectionState.Closed Then conn.Open()

ret = cmd.ExecuteScalar()

Catch ex As Exception

Throw ex

Finally

If conn.State = ConnectionState.Open Then conn.Close()

End Try

Return ret

End Function

‘獲取Excel文件指定數據表的數據列表columnNames

Public Shared Function GetExcelTableColumns(ExcelFileName As String, TableName As String) As ArrayList

Dim dt As DataTable

If Not File.Exists(ExcelFileName) Then

Throw New Exception(“指定的Excel文件不存在”)

Return Nothing

End If

Dim ColList As New ArrayList

Using conn As OleDbConnection = New OleDbConnection(buildConnStr(ExcelFileName))

Try

conn.Open()

dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, TableName, Nothing})

Catch ex As Exception

Throw ex

End Try

For i As Integer = 0 To dt.Rows.Count – 1

Dim ColName = dt.Rows(i)(“Column_Name”).ToString().Trim()

ColList.Add(ColName)

Next

End Using

Return ColList

End Function

End Class

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/156689.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 01:57
下一篇 2024-11-18 01:57

相關推薦

  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28
  • 源碼是什麼

    源碼是一段計算機程序的原始代碼,它是程序員所編寫的可讀性高、理解性強的文本。在計算機中,源碼是指編寫的程序代碼,這些代碼按照一定規則排列,被計算機識別並執行。 一、源碼的組成 源碼…

    編程 2025-04-27
  • Go源碼閱讀

    Go語言是Google推出的一門靜態類型、編譯型、並髮型、語法簡單的編程語言。它因具有簡潔高效,內置GC等優秀特性,被越來越多的開發者所鍾愛。在這篇文章中,我們將介紹如何從多個方面…

    編程 2025-04-27
  • Python怎麼看源碼

    本文將從以下幾個方面詳細介紹Python如何看源碼,幫助讀者更好地了解Python。 一、查看Python版本 在查看Python源碼之前,首先需要確認Python版本。可以在命令…

    編程 2025-04-27
  • 源碼審計面試題用法介紹

    在進行源碼審計面試時,可能會遇到各種類型的問題,本文將以實例為基礎,從多個方面對源碼審計面試題進行詳細闡述。 一、SQL注入 SQL注入是常見的一種攻擊方式,攻擊者通過在輸入的參數…

    編程 2025-04-27
  • 對3ue源碼的多方面闡述

    一、3ue源碼簡述 3ue是一款基於Vue.js開發的富文本編輯器,支持圖片上傳、粘貼、表格、代碼塊等多種功能,具有輕量、可定製、易擴展的特點。下面我們將從多個方面對3ue源碼進行…

    編程 2025-04-22
  • 全面解析ptable:從使用到源碼分析

    ptable是一個輕量級的DOM操作插件,主要用於表格的操作和功能增強。它的使用非常靈活,支持多種操作方式,包括添加、刪除、修改、排序、篩選等,可以大大提高表格的效率和易用性。 一…

    編程 2025-04-22
  • 深入分析Redis源碼

    一、Redis簡介 Redis是一個開源的內存數據結構存儲系統,可以用作資料庫、緩存、消息隊列等。Redis支持多種數據類型,包括字元串、哈希、列表、集合等。Redis基於C語言進…

    編程 2025-04-12
  • JDK源碼閱讀詳解

    一、jdk源碼閱讀順序 首先,在開始閱讀JDK源碼之前,需要按照正確的順序來閱讀代碼。一般建議按照以下順序進行閱讀: 1. 先從Java SE的API入手,了解它提供了哪些功能,及…

    編程 2025-04-12

發表回復

登錄後才能評論