本文目錄一覽:
- 1、求一個記事本的JAVA源代碼
- 2、C++控制台程序如何把外部參數賦值給變數。求源碼。如: 外部執行 test.ex
- 3、2016年旅遊網站源碼排行榜
- 4、在dedecms項目源碼中dede/admin/templets/catalog_main.htm文件中:
- 5、求解密
- 6、利用VB.NET實現導出DataTable數據到excel中,各位大俠幫幫忙,最好有源碼,謝謝,江湖救急
求一個記事本的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