C# 读取Excel文件代码的几种方法

C# 读取Excel文件代码的几种方法
C# 读取Excel文件代码的几种方法

C# 读取Excel文件代码的几种方法

片段 1

using System.Data.OleDb;

...

static void Main()

{

Application.Run(new Form1());

}

private void Form1_Load(object sender, System.EventArgs e)

{

DataTable myT=ExcelToDataTable("D:/文件/新武昌站点资料.xls","sheet1");

String mystr=myT.Rows[0][0].ToString();

this.textBox1.Text=mystr;

}

public static DataTable ExcelToDataTable(string strExcelFileName, string strSh eetName)

{

//源的定义

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExc elFileName + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";

//Sql语句

//string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法

string strExcel = "select * from [sheet1$]";

//定义存放的数据表

DataSet ds = new DataSet();

//连接数据源

OleDbConnection conn = new OleDbConnection(strConn);

conn.Open();

//适配到数据源

OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);

adapter.Fill(ds, strSheetName);

conn.Close();

return ds.Tables[strSheetName];

}

很简单的代码,但是问题就出在连接字符串上面,后面一定要加上Extended Properties='Excel 8.0;HDR =NO;IMEX=1',HDR和IMEX也一定要配合使用,哈哈,老实说,我也不知道为什么,这样配合的效果最好,这是我艰苦调试的结果.IMEX=1应该是将所有的列全部视为文本,我也有点忘记了.至于HDR本来只是说是否要出现一行标题头而已,但是结果却会导致某些字段值丢失,所以其实我至今也搞不明白为什么,很可能是驱动的问题...

片段 2

提供两种方法:一个是直接打开excel文件,然后逐行读取,速度较慢;还有一种方法是通过OleDb连接,把e xcel文件作为数据源来读取

方法一:这种直接读取单元格的方法释放很重要。

Excel.Application excel = null;

Excel.Workbooks wbs = null;

Excel.Workbook wb = null;

Excel.Worksheet ws = null;

Excel.Range range1 = null;

object Nothing = System.Reflection.Missing.Value;

try

{

excel = new Excel.Application();

https://www.360docs.net/doc/bb5460421.html,erControl = true;

excel.DisplayAlerts = false;

excel.Application.Workbooks.Open(this.FilePath,Nothing,Nothing,Nothing,Not hing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing ) ;

wbs = excel.Workbooks;

wb = wbs[1];

ws = (Excel.Worksheet)wb.Worksheets["Sheet2"];

int rowCount = https://www.360docs.net/doc/bb5460421.html,edRange.Rows.Count;

int colCount = https://www.360docs.net/doc/bb5460421.html,edRange.Columns.Count;

if (rowCount <= 0)

throw new InvalidFormatException("文件中没有数据记录");

if (colCount < 4 )

throw new InvalidFormatException("字段个数不对");

for (int i = 0;i {

this.rowNo = i + 1;

object[] row = new object[4];

for (int j = 0;j<4;j++)

{

range1 = ws.get_Range(ws.Cells[i+2,j+1],ws.Cells[i+2,j+1]); row[j] = range1.Value;

if (row[0] == null)

{

this.isNullRecord++;

break;

}

}

if (this.isNullRecord > 0)

continue;

DataRow dataRow = this.readExcel(row);

if (this.isNullRecord == 1)

continue;

if (this.verifyData(dataRow) == false)

errFlag++;

this.updateTableCurr(dataRow);

}

}

finally

{

if (excel != null)

{

if (wbs != null)

{

if (wb != null)

{

if (ws != null)

{

if (range1 != null)

{

System.Runtime.InteropServices.Marshal.ReleaseComObject(range1); range1 = null;

}

System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);

ws = null;

}

wb.Close(false,Nothing,Nothing);

System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);

wb = null;

}

wbs.Close();

System.Runtime.InteropServices.Marshal.ReleaseComObject(wbs);

wbs = null;

}

excel.Application.Workbooks.Close();

excel.Quit();

System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);

excel = null;

GC.Collect();

}

}

方法二:这里是fill进dataset,也可以返回OleDbDataReader来逐行读,数据较快

注:这种方法容易把混合型的字段作为null值读取进来,解决办法是改造连接字符串

strConn = "Provider=Microsoft.J et.OLEDB.4.0;Data Source=C:\\Erp1912.xls;Extended Prop erties='Excel 8.0;HDR=Yes;IMEX=1'";

通过Imex=1来把混合型作为文本型读取,避免null值,详细请见https://www.360docs.net/doc/bb5460421.html, private DataSet importExcelToDataSet(string FilePath)

{

string strConn;

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePat

h + ";Extended Properties=Excel 8.0;";

OleDbConnection conn = new OleDbConnection(strConn);

OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);

DataSet myDataSet = new DataSet();

try

{

myCommand.Fill(myDataSet);

}

catch(Exception ex)

{

throw new InvalidFormatException("该Excel文件的工作表的名字不正确," + ex.Messa ge);

}

return myDataSet;

}

片段 3

用c#读取excel文件,写到datagridview控件中

用c#读取excel文件,写到datagridview控件中

string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:¥MyExcel.xls; Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1''"" ;

OleDbConnection conn = new OleDbConnection(strconn);

conn.Open();

if (bo == false)

{

comboBox1.Items.Clear();

DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Table s, new object[] { null, null, null, "TABLE" });

foreach (DataRow dr in dt.Rows)

{

comboBox1.Items.Add((String)dr["TABLE_NAME"]);

//MessageBox.Show((String)dr["TABLE_NAME"]);

}

//comboBox1.Text = comboBox1.Items[0].ToString();

}

else

{

string sql = "select * from " + comboBox1.Text;

OleDbDataAdapter aper = new OleDbDataAdapter(sql, conn); DataSet myset = new DataSet();

aper.Fill(myset, comboBox1.Text);

dataGridView1.DataSource = myset.Tables[comboBox1.Text]; }

conn.Close();

备注:

@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:¥MyExcel.xls;Extended Properties=""E xcel 8.0;HDR=Yes;IMEX=1"""

"HDR=Yes;" indicates that the first row contains columnnames, not data

"IMEX=1;" tells the driver to always read "intermixed" data columns as text

TIP! SQL syntax: "SELECT * FROM [sheet1$]" - i.e. worksheet name followed by a "$" a nd wrapped in "[" "]" brackets.

如果第一行是数据而不是标题的话, 应该写: "HDR=No;"

"IMEX=1;" tells the driver to always read "intermixed" data columns as text

片段 4

C#读取Excel文件数据

相当简单,Excel就像数据库,每个Sheet就是一个Table. Microsoft.Jet.OLEDB驱动.

之后是DataReader循环,或DataSet处理都非常简单.

https://www.360docs.net/doc/bb5460421.html,/CRABO/

注意:数据类型的转换!!

#region set connection

string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "+this.txt Path.Text+";Extended Properties=Excel 8.0;";

myDataReader = null;

craboDbConnection = new OleDbConnection(strConn);

OleDbCommand myOleDbCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", m yOleDbConnection);

#endregion

try

{

myOleDbConnection.Open();

myDataReader = myOleDbCommand.ExecuteReader();

while (myDataReader.Read())

{

this.txtSeq.Text=Convert.ToString(myDataReader.GetValue(0));//列1

this.txtName.Text=Convert.ToString(myDataReader.GetValue(1));//列2

this.txtPIN.Text=Convert.ToString(myDataReader.GetValue(2));//列3

}

}

#region Catch

catch(System.Threading.ThreadAbortException e)

{

System.Threading.Thread.ResetAbort();

this.lblResult.Text = "线程被中断..."+e.Message;

}

catch(Exception ex)

{

System.Windows.Forms.MessageBox.Show(ex.ToString());

}

finally

{

// Always call Close when done reading.

if (myDataReader != null)

myDataReader.Close();

// Close the connection when done with it.

if (craboDbConnection!=null && craboDbConnection.State == ConnectionState. Open)

craboDbConnection.Close();

if(webResponse!=null)

webResponse.Close();

}

#endregion

破解excel保护密码的宏代码

Option Explicit Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on " & _ "sheets, or workbook structure or windows." & AUTHORS & VERSION Const MSGNOPWORDS2 As String = "There was no protection to " & _ "workbook structure or windows." & DBLSPACE & _ "Proceeding to unprotect sheets." & AUTHORS & VERSION Const MSGTAKETIME As String = "After pressing OK button this " & _ "will take some time." & DBLSPACE & "Amount of time " & _ "depends on how many different passwords, the " & _ "passwords, and your computer's specification." & DBLSPACE & _ "Just be patient! Make me a coffee!" & AUTHORS & VERSION Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ "Structure or Windows Password set." & DBLSPACE & _ "The password found was: " & DBLSPACE & "$$" & DBLSPACE & _ "Note it down for potential future use in other workbooks by " & _ "the same person who set this password." & DBLSPACE & _ "Now to check and clear other passwords." & AUTHORS & VERSION Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _ "password set." & DBLSPACE & "The password found was: " & _

Excel屏蔽代码大全

Excel屏蔽代码大全 如果打开文件自动屏蔽,把屏蔽代码放入Workbook_Open事件中,值 为False: Private Sub Workbook_Open() …… End Sub 如果想自动恢复,把恢复代码放入Workbook_BeforeClose事件中,值为True: Private Sub Workbook_BeforeClose(Cancel As Boolean) …… End Sub https://www.360docs.net/doc/bb5460421.html,mandBars(1).Controls("工具(&T)").Controls("宏(&M)").Enabled=False'工具-宏变成灰色,如忘了变回来,工具-自定义-工具栏选项-工作表菜单栏-重新设置即可 https://www.360docs.net/doc/bb5460421.html,mandBars("ply").Controls("查看代码(&V)").Enabled=False'右键工作表标签“查看代码”为灰色https://www.360docs.net/doc/bb5460421.html,mandBars("Document").Controls("查看代码(&V)").Enabled=False'右键工作薄“查看代码”为灰色 '常用的屏蔽代码: https://www.360docs.net/doc/bb5460421.html,mandBars("Worksheet Menu Bar").Enabled=False '屏蔽菜单栏 Application.DisplayFormulaBar=False'屏蔽编辑栏Application.DisplayStatusBar=False'屏蔽状态栏 下面任选一组即可,不可同时出现。 https://www.360docs.net/doc/bb5460421.html,mandBars("Standard").Visible=False'屏蔽常用工具栏,右键可选 https://www.360docs.net/doc/bb5460421.html,mandBars("Formatting").Visible=False'屏蔽格式工具栏,右键可选 https://www.360docs.net/doc/bb5460421.html,mandBars("Standard").Enabled=False '去除常用工具栏,右键也删掉 https://www.360docs.net/doc/bb5460421.html,mandBars("Formatting").Enabled=False '去除格式工具栏,右键也删掉

EXCEL宏代码大全

EXCEL宏代码大全 本文件部分文章来源于网络,文章版权归原作者所有,如果本站转载的文章侵犯了您的权益请及时联系我们,我们将尽快妥善处理。本站除部分特别声明禁止转载的专稿外,其他文章可以自由转载,但请务必注明原出处和作者。 000. A列半角内容变红 Sub A列半角内容变红() ? Dim rg As Range, i As Long ? Application.ScreenUpdating = False ? For Each rg In Cells.SpecialCells(xlCellTypeConstants, 3) ??? For i = 1 To Len(rg) ????? If Asc(Mid(rg, i, 1)) 001. A列等于A列减B列 Sub A列等于A列减B列() For i = 1 To 23 Cells(i, 1) = Cells(i, 1) - Cells(i, 2) Next End Sub 002. B列录入数据时在A列返回记录时间(工作表代码) Public Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Target.Offset(, -1) = Now End If End Sub 003. Excel宏常用代码 本大类暂没有内容,以下是关于本类的所有记录集。 004. Sub 以当前日期为名称另存文件() ActiveWorkbook.SaveAs Filename:=Date & ".xls" End Sub 005. Sub 启用保存() https://www.360docs.net/doc/bb5460421.html,mandBars("File").Controls(4).Enabled = True

EXCEL密码保护破解2010

EXCEL密码保护破解方法: 1\打开文件 2\工具---宏----录制新宏---输入名字如:aa 3\停止录制(这样得到一个空宏) 4\工具---宏----宏,选aa,点编辑按钮 5\删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧) 6\关闭编辑窗口 7\工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,没有密码了!! 代码如下: Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1)

' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on " & _ "sheets, or workbook structure or windows." & AUTHORS & VERSION Const MSGNOPWORDS2 As String = "There was no protection to " & _ "workbook structure or windows." & DBLSPACE & _ "Proceeding to unprotect sheets." & AUTHORS & VERSION

excel命令大全

Excel函数大全 数据库和清单管理函数 DA VERAGE 返回选定数据库项的平均值 DCOUNT 计算数据库中包含数字的单元格的个数 DCOUNTA 计算数据库中非空单元格的个数 DGET 从数据库中提取满足指定条件的单个记录 DMAX 返回选定数据库项中的最大值 DMIN 返回选定数据库项中的最小值 DPRODUCT 乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值 DSTDEV 根据数据库中选定项的示例估算标准偏差 DSTDEVP 根据数据库中选定项的样本总体计算标准偏差 DSUM 对数据库中满足条件的记录的字段列中的数字求和 DV AR 根据数据库中选定项的示例估算方差 DV ARP 根据数据库中选定项的样本总体计算方差 GETPIVOTDA TA 返回存储在数据透视表中的数据 日期和时间函数 DATE 返回特定时间的系列数 DATEDIF 计算两个日期之间的年、月、日数 DATEV ALUE 将文本格式的日期转换为系列数 DAY 将系列数转换为月份中的日 DAYS360 按每年360 天计算两个日期之间的天数 EDATE 返回在开始日期之前或之后指定月数的某个日期的系列数 EOMONTH 返回指定月份数之前或之后某月的最后一天的系列数 HOUR 将系列数转换为小时 MINUTE 将系列数转换为分钟 MONTH 将系列数转换为月 NETWORKDAYS 返回两个日期之间的完整工作日数 NOW 返回当前日期和时间的系列数 SECOND 将系列数转换为秒 TIME 返回特定时间的系列数 TIMEV ALUE 将文本格式的时间转换为系列数 TODAY 返回当天日期的系列数 WEEKDAY 将系列数转换为星期 WORKDAY 返回指定工作日数之前或之后某日期的系列数 YEAR 将系列数转换为年 YEARFRAC 返回代表start_date(开始日期)和end_date(结束日期)之间天数的以年为单位的分数DDE 和外部函数 CALL 调用动态链接库(DLL) 或代码源中的过程 REGISTER.ID 返回已注册的指定DLL 或代码源的注册ID SQL.REQUEST 连接外部数据源,并从工作表中运行查询,然后将结果作为数组返回,而无需进行宏编程。有关CALL 和REGISTER 函数的其他信息 工程函数 BESSELI 返回经过修改的贝塞尔函数In(x) BESSELJ 返回贝塞尔函数Jn(x)

vba常用代码大全

前言 我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。 而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。 第1.1例 ASC函数 一、题目: 要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。 二、代码: Sub 示例_1_01() Dim myNum1%, myNum2% myNum1 = Asc("Excel") '返回69 myNum2 = Asc("e") '返回101 [a1] = "myNum1= ": [b1] = myNum1 [a2] = "myNum2= ": [b2] = myNum2 End Sub 三、代码详解 1、Sub 示例_1_01():宏程序的开始语句。 2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。

也可以写为 Dim myNum1 As Integer 。Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符 号 (%)。 3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。 Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。 语法 Asc(string) 必要的 string(字符串)参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。 4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。这里返回小写字母e 的ASCII代码101。 5、[a1] = "myNum1= ": [b1] = myNum1:把字符串“myNum1= “赋给A1单元格,把变量myNum1的值赋给B1单元格。 6、[a2] = "myNum2= ": [b2] = myNum2:把字符串“myNum2= “赋给A2单元格,把变量myNum2的值赋给B2单元格。 7、End Sub:程序的结束语句,和“Sub示例_1_01()”相对应。 第1.2例 Chr函数 一、题目"": 要求编写一段代码,运用Chr函数将ASCII值转换为对应的字符。 二、代码: Sub 示例_1_02()

excel代码大全

excel代码大全.txt第一次笑是因为遇见你,第一次哭是因为你不在,第一次笑着流泪是因为不能拥有你。EXCEL宏代码大全 本文件部分文章来源于网络,文章版权归原作者所有,如果本站转载的文章侵犯了您的权益请及时联系我们,我们将尽快妥善处理。本站除部分特别声明禁止转载的专稿外,其他文章可以自由转载,但请务必注明原出处和作者。 000. A列半角内容变红 Sub A列半角内容变红() Dim rg As Range, i As Long = False For Each rg In (xlCellTypeConstants, 3) For i = 1 To Len(rg) If Asc(Mid(rg, i, 1)) 001. A列等于A列减B列 Sub A列等于A列减B列() For i = 1 To 23 Cells(i, 1) = Cells(i, 1) - Cells(i, 2) Next End Sub 002. B列录入数据时在A列返回记录时间(工作表代码) Public Sub Worksheet_Change(ByVal Target As Range) If = 2 Then (, -1) = Now End If End Sub 003. Excel宏常用代码 本大类暂没有内容,以下是关于本类的所有记录集。 004. Sub 以当前日期为名称另存文件() Filename:=Date & ".xls" End Sub 005. Sub 启用保存() ("File").Controls(4).Enabled = True ("File").Controls(5).Enabled = True End Sub 006. Sub 执行前需要验证密码的宏()

破解excel密码宏程序代码

1.将你要破解的Excel文件关闭,切记一定要关闭呀!然后新建一个Excel文 件 2.打开新建的这个Excel,按下alt+F11,打开vb界面,新建一个模块,如图 所示

3.将代码复制到这个模块中,代码如下: Private Sub VBAPassword() '你要解保护的Excel文件路径 Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解") If Dir(Filename) = "" Then MsgBox "没找到相关文件,清重新设置。" Exit Sub Else FileCopy Filename, Filename & ".bak" '备份文件。 End If Dim GetData As String * 5 Open Filename For Binary As #1 Dim CMGs As Long Dim DPBo As Long For i = 1 To LOF(1) Get #1, i, GetData If GetData = "CMG=""" Then CMGs = i If GetData = "[Host" Then DPBo = i - 2: Exit For Next If CMGs = 0 Then MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示" Exit Sub End If Dim St As String * 2 Dim s20 As String * 1 '取得一个0D0A十六进制字串 Get #1, CMGs - 2, St '取得一个20十六制字串 Get #1, DPBo + 16, s20

Excel函数代号

EXCEL函数大全 数据库和清单管理函数 AVERAGE 返回选定数据库项的平均值 COUNT 计算数据库中包含数字的单元格的个数 COUNTA 计算数据库中非空单元格的个数 DGET 从数据库中提取满足指定条件的单个记录 MAX 返回选定数据库项中的最大值 MIN 返回选定数据库项中的最小值 PRODUCT 乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值 STDEV 根据数据库中选定项的示例估算标准偏差 STDEVP 根据数据库中选定项的样本总体计算标准偏差 SUM 对数据库中满足条件的记录的字段列中的数字求和 VAR 根据数据库中选定项的示例估算方差 VARP 根据数据库中选定项的样本总体计算方差 GETPIVOTDATA 返回存储在数据透视表中的数据 日期和时间函数 DATE 返回特定时间的系列数 DATEDIF 计算两个日期之间的年、月、日数 DATEVALUE 将文本格式的日期转换为系列数 DAY 将系列数转换为月份中的日 DAYS360 按每年360天计算两个日期之间的天数 EDATE 返回在开始日期之前或之后指定月数的某个日期的系列数 EOMONTH 返回指定月份数之前或之后某月的最后一天的系列数 HOUR 将系列数转换为小时 MINUTE 将系列数转换为分钟 MONTH 将系列数转换为月 NETWORKDAYS 返回两个日期之间的完整工作日数 NOW 返回当前日期和时间的系列数 SECOND 将系列数转换为秒 TIME 返回特定时间的系列数 TIMEVALUE 将文本格式的时间转换为系列数 TODAY 返回当天日期的系列数 WEEKDAY 将系列数转换为星期 WORKDAY 返回指定工作日数之前或之后某日期的系列数 YEAR 将系列数转换为年 YEARFRAC 返回代表START_DATE(开始日期)和END_DATE(结束日期)之间天数的以年为单位的分数 DDE 和外部函数 CALL 调用动态链接库(DLL)或代码源中的过程 REGISTER. ID 返回已注册的指定DLL或代码源的注册ID

excel2003屏蔽菜单、工具栏等代码大全

excel2003屏蔽菜单、工具栏等代码大全 如果打开文件自动屏蔽,把屏蔽代码放入Workbook_Open事件中,值为False: Private Sub Workbook_Open() …… End Sub 如果想自动恢复,把恢复代码放入Workbook_BeforeClose事件中,值为True: Private Sub Workbook_BeforeClose(Cancel As Boolean) …… End Sub https://www.360docs.net/doc/bb5460421.html,mandBars(1).Controls("工具(&T)").Controls("宏 (&M)").Enabled=False'工具-宏变成灰色,如忘了变回来,工具-自定义-工具栏选项-工作表菜单栏-重新设置即可https://www.360docs.net/doc/bb5460421.html,mandBars("ply").Controls("查看代码(&V)").Enabled = False'右键工作表标签“查看代码”为灰色 https://www.360docs.net/doc/bb5460421.html,mandBars("Document").Controls("查看代码(&V)").Enabled = False'右键工作薄“查看代码”为灰色 '常用的屏蔽代码: https://www.360docs.net/doc/bb5460421.html,mandBars("Worksheet Menu Bar").Enabled = False'屏蔽菜单栏Application.DisplayFormulaBar = False'屏蔽编辑栏 Application.DisplayStatusBar = False'屏蔽状态栏 下面任选一组即可,不可同时出现。

https://www.360docs.net/doc/bb5460421.html,mandBars("Standard").Visible = False'屏蔽常用工具栏,右键可选https://www.360docs.net/doc/bb5460421.html,mandBars("Formatting").Visible = False'屏蔽格式工具栏,右键可选https://www.360docs.net/doc/bb5460421.html,mandBars("Standard").Enabled = False'去除常用工具栏,右键也删掉 https://www.360docs.net/doc/bb5460421.html,mandBars("Formatting").Enabled = False'去除格式工具栏,右键也删掉 https://www.360docs.net/doc/bb5460421.html,mandBars("Toolbar list").Enabled = False'屏蔽右键工具栏 https://www.360docs.net/doc/bb5460421.html,mandBars("cell").Enabled = False'屏蔽单元格右键单击https://www.360docs.net/doc/bb5460421.html,mandBars("Column").Enabled = False'屏蔽列右键单击https://www.360docs.net/doc/bb5460421.html,mandBars("Row").Enabled = False'屏蔽行右键单击Application.Assistant.Visible = False'应用程序的辅助的可见 https://www.360docs.net/doc/bb5460421.html,mandBars.DisableCustomize=True'去除右键工具栏中的“自定义” ActiveWindow.DisplayHeadings = False'屏蔽行号列标 ActiveWindow.DisplayWorkbookTabs = False'屏蔽工作表标签 ActiveWindow.DisplayVerticalScrollBar = False'屏蔽垂直滚动条 ActiveWindow.DisplayHorizontalScrollBar = False'屏蔽水平滚动条 https://www.360docs.net/doc/bb5460421.html,mandBars("ply").Enabled = False'屏蔽工作表标签右键单击https://www.360docs.net/doc/bb5460421.html,mandBars("Visualbasic").Enabled=False'屏蔽应用程序的<命令块>("Visual basic" )的激活 Application.OnKey"%{f11}",""'屏蔽组合键ALT+F11,%代表ALT Application.OnKey "%{F11}"'解除屏蔽ALT+F11 Application.OnKey "%{f8}", " "'屏蔽组合键ALT+F8 Application.OnKey "%{f8}"'解除屏蔽ALT+F8 Application.OnKey "^{f11}", "VBEdit"'屏蔽组合键Ctrl+F11,插入宏表,^代表Ctrl

如何破解EXCEL工作表保护密码忘记密码怎么办

如何破解EXCEL工作表保护密码忘记密码怎么办 1.新建一个EXCEL工作表,而后点击另存为,讲表格保存为启用宏的工作表 2.一次点击开发工具---录制新宏,在弹出的对话框内修改宏名称而后确定 3.依次点击开发工具----停止录制宏,宏录制完成

4.依次点击开发工具,---宏----在弹出的对话框找到我们刚才录制的宏名称而后进入 VBA界面 5.在VBA界面,全选里面的代码,而后删除,讲里面的代码全部删除完

6.代码复制到VBA编辑窗口内 Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't."

Excel函数计算公式大全完整

EXCEL函数公式大全(完整) 函数说明 CALL调用动态链接库或代码源中的过程 EUROCONVERT用于将数字转换为欧元形式,将数字由欧元形式转换为欧元成员国货币形式,或利用欧元作为中间货币将数字由某一欧元成员国货币转化为另一欧元成员国 货币形式(三角转换关系) GETPIVOTDATA返回存储在数据透视表中的数据 REGISTER.ID返回已注册过的指定动态链接库(DLL) 或代码源的注册号 SQL.REQUEST连接到一个外部的数据源并从工作表中运行查询,然后将查询结果以数组的形式返回,无需进行宏编程 函数说明 CUBEKPIMEMBER返回重要性能指标(KPI) 名称、属性和度量,并显示单元格中的名 称和属性。KPI 是一项用于监视单位业绩的可量化的指标,如每月 总利润或每季度雇员调整。 CUBEMEMBER返回多维数据集层次结构中的成员或元组。用于验证多维数据集内

是否存在成员或元组。 CUBEMEMBERPROPERTY返回多维数据集内成员属性的值。用于验证多维数据集内是否存在 某个成员名并返回此成员的指定属性。 CUBERANKEDMEMBER返回集合中的第n 个或排在一定名次的成员。用于返回集合中的一 个或多个元素,如业绩排在前几名的销售人员或前10 名学生。 CUBESET通过向服务器上的多维数据集发送集合表达式来定义一组经过计算 的成员或元组(这会创建该集合),然后将该集合返回到Microsoft Office Excel。 CUBESETCOUNT返回集合中的项数。 CUBEVALUE返回多维数据集内的汇总值。 数据库函数 函数说明 DAVERAGE返回所选数据库条目的平均值 DCOUNT计算数据库中包含数字的单元格的数量 DCOUNTA计算数据库中非空单元格的数量

EXCEL函数大全

EXCEL函数大全 目录 一、数据库和清单管理函数 (1) 二、日期和时间函数 (2) 三、工程函数 (3) 四、财务函数 (4) 五、信息函数 (6) 六、逻辑函数 (7) 七、查找和引用函数 (7) 八、数学和三角函数 (8) 九、统计函数 (10) 十、文本函数 (13) 一、数据库和清单管理函数 AVERAGE 返回选定数据库项的平均值 DCOUNT 计算数据库中包含数字的单元格的个数 DCOUNTA 计算数据库中非空单元格的个数 DGET 从数据库中提取满足指定条件的单个记录 DMAX 返回选定数据库项中的最大值 DMIN 返回选定数据库项中的最小值 DPRODUCT 乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值 DSTDEV 根据数据库中选定项的示例估算标准偏差 DSTDEVP 根据数据库中选定项的样本总体计算标准偏差 DSUM 对数据库中满足条件的记录的字段列中的数字求和 DVAR 根据数据库中选定项的示例估算方差 DVARP 根据数据库中选定项的样本总体计算方差 GETPIVOTDATA 返回存储在数据透视表中的数据

二、日期和时间函数 DATE 返回特定时间的系列数 DATEDIF 计算两个日期之间的年、月、日数 DATEVALUE 将文本格式的日期转换为系列数 DAY 将系列数转换为月份中的日 DAYS360 按每年360天计算两个日期之间的天数 EDATE 返回在开始日期之前或之后指定月数的某个日期的系列数 EOMONTH 返回指定月份数之前或之后某月的最后一天的系列数 HOUR 将系列数转换为小时 MINUTE 将系列数转换为分钟 MONTH 将系列数转换为月 NETWORKDAYS 返回两个日期之间的完整工作日数 NOW 返回当前日期和时间的系列数 SECOND 将系列数转换为秒 TIME 返回特定时间的系列数 TIMEVALUE 将文本格式的时间转换为系列数 TODAY 返回当天日期的系列数 WEEKDAY 将系列数转换为星期 WORKDAY 返回指定工作日数之前或之后某日期的系列数 YEAR 将系列数转换为年 YEARFRAC 返回代表START_DATE(开始日期)和END_DATE(结束日期)之间天数的以年为单位的分数DDE 和外部函数 CALL 调用动态链接库(DLL)或代码源中的过程 REGISTER. ID 返回已注册的指定DLL或代码源的注册ID SQL.REQUEST 连接外部数据源,并从工作表中运行查询,然后将结果作为数组返回,而无需进行宏编程。

Excel VBA命令大全

本示例为设置密码窗口 (1) If Application.InputBox("请输入密码:") = 1234 Then [A1] = 1 '密码正确时执行 Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码 End If 本示例为设置密码窗口 (1) X = MsgBox("是否真的要结帐?", vbYesNo) If X = vbYes Then Close 本示例为设置工作表密码ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码 ' 本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。 For Each w In Workbooks If https://www.360docs.net/doc/bb5460421.html, https://www.360docs.net/doc/bb5460421.html, Then w.Close SaveChanges:=True End If Next w '每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。 Application.WindowState = xlMaximized ' 本示例显示活动工作表的名称。 MsgBox "The name of the active sheet is " & https://www.360docs.net/doc/bb5460421.html, ' 本示例保存当前活动工作簿的副本。 ActiveWorkbook.SaveCopyAs "C:/TEMP/XXXX.XLS" '下述过程激活工作簿中的第四张工作表。 Sheets(4).Activate '下述过程激活工作簿中的第1张工作表。Worksheets(1).Activate ' 本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改。ThisWorkbook.Saved = True ThisWorkbook.Close ' 本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算。Worksheets(1).EnableCalculation = False '下述过程打开 C 盘上名为 MyFolder 的文件夹中的MyBook.xls 工作簿。 Workbooks.Open ("C:/MyFolder/MyBook.xls") '本示例显示活动工作簿中工作表sheet1 上单元格 A1 中的值。 MsgBox Worksheets("Sheet1").Range("A1").Value 本示例显示活动工作簿中每个工作表的名称 For Each ws In Worksheets MsgBox https://www.360docs.net/doc/bb5460421.html, Next ws 本示例向活动工作簿添加新工作表 , 并设置该工作表的名称? Set NewSheet = Worksheets.Add https://www.360docs.net/doc/bb5460421.html, = "current Budget" 本示例将新建的工作表移到工作簿的末尾 'Private Sub Workbook_NewSheet(ByVal Sh As Object) Sh.Move After:=Sheets(Sheets.Count) End Sub 本示例将新建工作表移到工作簿的末尾'Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, _ ByVal Sh As Object) Sh.Move After:=Wb.Sheets(Wb.Sheets.Count) End Sub 本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称。 Set NewSheet = Sheets.Add(Type:=xlWorksheet) For i = 1 To Sheets.Count NewSheet.Cells(i, 1).Value = Sheets(i).Name Next i 本示例将第十行移到窗口的最上面? Worksheets("Sheet1").Activate ActiveWindow.ScrollRow = 10 当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序。 'Private Sub Workbook_SheetCalculate(ByVal Sh As Object) With Worksheets(1) .Range("a1:a100").Sort Key1:=.Range("a1") End With End Sub 本示例显示工作表 Sheet1 的打印预览。 Worksheets("Sheet1").PrintPreview 本示例保存当前活动工作簿? ActiveWorkbook.Save 本示例保存所有打开的工作簿,然后关闭 Microsoft Excel。 For Each w In Application.Workbooks w.Save Next w Application.Quit 下例在活动工作簿的第一张工作表前面添加两张新的工作表? Worksheets.Add Count:=2, Before:=Sheets(1) 本示例设置15 秒后运行my_Procedure 过程,从现在开始计时。Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure" 本示例设置my_Procedure 在下午 5 点开始运行。Application.OnTime TimeValue("17:00:00"), "my_Procedure" 本示例撤消前一个示例对OnTime 的设置。Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="my_Procedure", Schedule:=False 每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度。'Private Sub Worksheet_Calculate() Columns("A:F").AutoFit End Sub 本示例使活动工作簿中的计算仅使用显示的

相关文档
最新文档