文档库 最新最全的文档下载
当前位置:文档库 › c#学习笔记

c#学习笔记

c#学习笔记
c#学习笔记

一C#学习笔记

1在c#中制表符表示着特殊的含义

\t横向制表符、v水平制表符,\b beep 发出声音 \r 回车 \n换行。”\”代表转义,一下是其用法

在控制台程序中输出字符串“she's girl her name is "lulu"”

代码如下:

System.Console.Write("she\'s girl her name is \"lulu\""); 在控制台下输出一个盘符的路径("my windows system root directory id" c:\wang.txt")

代码如下:

(方法一) System.Console.WriteLine("my windows system root directory id \" c:\\wang.txt\"");

(方法二)System.Console.WriteLine(@"d:\wang.txt"); 其局限性事字符串里面不能有双引

2声名一个变量并初始化,提倡声明一个变量时给他立即初始化,运行时出现异常信息要看看异常信息

3变量f代表float| m代表decimal| u代表无符号数|L代表long|d代表double| java中不存在无符号数,Int32 i=0 等价于int i=0 float=singel,double=Double,byte=Byte,sbyte=SByte short=Int16,ushort=UInt16 long=Int64, unlong=UInt64

decimal d = 123; //在程序中出现的是整数且无后缀默认是int类型

decimal d2 = 123.0m;

float d4=1.1 //在程序中出现的是且无后缀默认是double类型

float d3 = 1.1f; //在程序中出现的是且无后缀默认是double类型

int i = 0; //4个字节32位

uint k = 12; //代表无符号的

byte是无符号的

sbyte kk=-1; //代表有符号位

我们可以用如下方法来知道各个类型的范围

代码如下:

System.Console.WriteLine("sbyte最大值:{0}最小值:{1}", sbyte.MaxValue, sbyte.MinValue);

System.Console.WriteLine("byte最大值:{0} 最小值{1}", byte.MaxValue, byte.MinValue);

System.Console.WriteLine("unshort最大值:{0} 最小值{1}", ushort.MaxValue, ushort.MinValue);

System.Console.WriteLine("short最大值:{0} 最小值{1}", short.MaxValue, short.MinValue);

System.Console.WriteLine("long最大值为:{0}最小值为:{1}", long.MaxValue, long.MinValue);

System.Console.WriteLine("ulong最大值为:{0}最小值为:{1}", ulong.MaxValue, ulong.MinValue);

checked关键字用于对整型算术运算和转换显式启用溢出检查(MSDN)

unchecked关键字用于取消整型算术运算和转换的溢出检查。(MSDN)

写法如下:

unchecked

{

int val = 2147483647 * 2;

}

4 C#控制语句

相关的面试题:

输入一个四位数,从高位到底为以此输入:(这道题主要考察 % / 对整数的一些操作)

System.Console.WriteLine("请输入一个四位数");

int data = int.Parse(System .Console .ReadLine ());

System.Console.WriteLine("千万数{0}",(data/1000));

System.Console.WriteLine("百位数{0}",((data%1000)/100));

System.Console.WriteLine("十位位数{0}", ((data % 100) / 10));

System.Console.WriteLine("个位位数{0}", (data % 10 ));

swith case | swith case 中case中的值必须为常量const |switch 中的值可以是整数,字符,字

符串,bool值枚举| swith (类型)与case 中的类型一致,case中不能出现重复的条件

System.Console.WriteLine("请选着0--9的数买票");

int price = 0;

int flag = Convert.ToInt32(System.Console.ReadLine());

switch (flag)

{

case 0:

case 3: price = 3;//代表0 ,1 ,3 时价格都为3 。这点应注意

break;

case 4: price = 4;

break;

case 5: price = 5;

break;

case 6: price = 6;

break;

case 7:

case 8:

case 9: price = 7;

break;

default:

price = int.MaxValue;

break;

}

System.Console.WriteLine("你买的票价格为{0}元", price);

While 与do while

Do while 是先执行在判断条件,while则是先判断条件在执行。

输出所有水仙花数(一个三位数,每位的立方之和为其数本身)。

for (int i = 100; i < 1000;i++ )

{

//取出个位,百位,十位

int a = i / 100;

int b = (i % 100) / 10;

int c = i % 10;

if(i==a*a*a+b*b*b+c*c*c)

{

System.Console.WriteLine("水仙花:{0} ",i);

}

2.1,2,3,4能组成多少个3位数。并且每一位都不相等。

int a = 0;

int b = 0;

int count = 0;

for (int abc = 123; abc <= 432; abc++)

{

a = abc / 100;

b = (ab

c % 100) / 10;

c = abc % 10;

if (a == 1 || a == 2 || a == 3 || a == 4)

{

if ((b == 1 || b == 2 || b == 3 || b == 4) && (a != b))

{

if((c == 1 || c == 2 || c == 3 || c == 4) && (a != c) && (b != c))

{

System.Console.WriteLine(abc);

count++;

}

else

{

continue;

}

}

else

{

continue;

}

}

else

{

continue;

}

}

System.Console.WriteLine("总共{0}个整数", count);

3.第二题有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...打印。求出这个数列的前20项之和。

int a = 2;

int b = 1;

int temp = 0;

double total= 2;

for (int i = 0; i < 20;i++ )

{

temp = a + b;

b = a;

a = temp;

System.Console.WriteLine("{0}/{1}",a,b);

total += Convert.ToDouble(a) / b;

}

System.Console.WriteLine(total );

//第三题3. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少。

// An=An-1+An-2;这个是通项公式数列规律如下:(1,2,3,5,8,13)

int n = int.Parse(System.Console.ReadLine());

int a = 1;

int b = 1;

int temp = 0;

int total = 0;

for (int i = 0; i < n; i++)

{

temp = b;

b = a + b;

a = temp;

System.Console.Write("{0} ", b);

total = total + b;

}

if (n == 1 || n == 2)

{

System.Console.WriteLine("兔子总数为:{0}", n);

}

else

{

System.Console.WriteLine("兔子总数为:{0}", total);

}

//打印各种形状

//打印9*9乘法口诀

for (int i = 1; i <= 9; i++)

{

for (int j = 1; j <= i; j++)

{

System.Console.Write("{0}*{1}={2} ", j, i, j * i); }

System.Console.WriteLine();

}

//用*打印一个直角三角形

for (int i = 0; i < 7; i++)

{

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

{

System.Console.Write("* ");

}

System.Console.WriteLine();

}

//用*打印等腰三角行

for (int i = 1; i < 7; i++)

{

for (int j = 1; j < 7 - i; j++)//打印空格 {

System.Console.Write(" ");

}

// 打印*

for (int j = 0; j < 2*i-1; j++)

{

System.Console.Write("*");

}

System.Console.WriteLine();

}

//用*打印等腰三角形

for (int i = 1; i < 7; i++)

{

for (int j = 1; j < i; j++)

{

System.Console.Write(" ");

}

for (int j = 0; j < 2 * (7 - i) - 1; j++) {

System.Console.Write("*");

}

System.Console.WriteLine();

}

//用*打印菱形

for (int i = 1; i < 14;i++ )

{

//打印空白

for (int j = 0; j < Math .Abs( 7-i); j++) {

System.Console.Write(" ");

}

//打印*

for (int j = 0; j < 2*(7-Math .Abs ( 7-i))-1; j++) {

System.Console.Write("*");

}

System.Console.WriteLine();

}

//用*打印空菱形

for (int i = 1; i < 14; i++)

{

//打印空白

for (int j = 0; j < Math.Abs(7 - i); j++)

{

System.Console.Write(" ");

}

//打印*

for (int j = 0; j < 2 * (7 - Math.Abs(7 - i)) - 1; j++) {

if(j==0)

{

System.Console.Write("*");

continue;

}

if (j == 2 * (7 - Math.Abs(7 - i)) - 2)

{

System.Console.Write("*");

}

else

{

System.Console.Write(" ");

}

}

System.Console.WriteLine();

}

//分析一下程序,一下为一个死循环,要好好仔细的分析

Public void Function

{

int k = 0;

do

{

if(k>11)

{

Break;

}

if(k>=10)

{

continue;

}

// continue 立即结束本次循环,开始下一次循环。不支持本次循环的后续语句

k++;

}

while (true );

此程序为死循环

}

5.String类型

类型:集合,数组,https://www.wendangku.net/doc/859133502.html,,c#类似与指针的机制

c#中的string类型是安全的与c,c++(有可能出现指针越界)相比。stirng一旦初始化,string 类中的方法是不会改变其内容。但字符串可以重新符值

字符使用单引号引起来的'h'

数组是一个集合

string k="helloword";

char v={‘a’,’b’};

可以用k[i]的放形式来去每个字符

字符串是不可变的(长度,内容)

字符数组是可以的(长度不可以改变,但是内容是可以改变)

string s=new string (v);//把一个字符串数组转化为字符串

char [] v2=s.ToCharArray();//把一个字符串转化成一个字符数组

//诗词古式排版,

string ss = "朝辞白帝彩云间,千里江陵一日还,两岸猿声啼不住,轻舟已过万重山";

//取出每句

string[] data = ss.Split(',');

for (int i = 0; i < data[0].Length ; i++)

{

for (int j =data.Length-1 ; j >=0 ; j--)

{

System.Console.Write("{0} ",data [j].Substring (i,1));

}

System.Console.WriteLine();

}

System.Console.WriteLine();

System.Console.WriteLine();

System.Console.WriteLine();

//宋词古排

string s = "念奴娇赤壁怀古大江东去浪淘尽千古风流人物故垒西边人道是三国周郎赤壁乱石穿空惊涛拍岸卷起千堆雪江山如画一时多少豪杰遥想公瑾当年小乔初嫁了雄姿英发羽扇纶巾谈笑间樯橹灰飞

烟灭故国神游多情应笑我早生华发人生如梦一尊还酹江月";

string[] arr = s.Split(' ');

for (int k = 0; k < arr.Length; k++)

{

if (arr[k].Length != 6)

{

arr[k] = arr[k].PadRight(6, ' ');//不满6右边补0 }

}

for (int i = 0; i < 6; i++)

{

for (int j = 23; j >= 0; j--)

{

System.Console.Write("{0} ", arr[j][i]);

}

System.Console.WriteLine();

}

// 15位身份证升级为18位身份证

// S=Sum(Ai*Wi),i=0,...,16,先对前17位数字的

权求和

//Ai:表示第i位置上的身份证号码数字值

//Wi:表示第i位置上的加权因子

//Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

// 计算模

//Y=mod(S,11)

//通过模得到对应的校验码

//Y: 0 1 2 3 4 5 6 7 8 9 10

////校验码: 1 0 X 9 8 7 6 5 4 3 2

System.Console.WriteLine("证号请输入你的15位身份");

string data = System.Console.ReadLine();

char[] Ai = new char[18];

int Sum = 0;

char[] Avg = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };

int[] Wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };

data=data.Insert(6, "19");//把19添加到字符串中

for (int i = 0; i < 17;i++ )

{

Sum += Convert.ToInt32((int)data[i] - 48) * Wi[i];

}

string result = data + Avg[Sum%11];

System.Console.WriteLine("升级后的省份证号为{0}", result);

判断s是否是一个合法的财务数字:条件(一个合法的浮点数或整数(小数点只能有一个,且不能在第一位,也不能在最后一位)。精度不能大于2。不能有非法字符)容许有负号,且最多只有一个,且只能在第一位。容许有$负号,且最多只有一个,且只能在第一位。同时存在$和负号的时候。$在前。

System.Console.WriteLine("请输入一个数字");

bool valid = true;

//isDigit 判断的是0---9之间的数 isnumber 包含i 等罗马数字

string number = System.Console.ReadLine();

//最后考虑$ 和负号

if (number[0] == '$')

{

number = number.Substring(1);

}

if (number.Length > 0 && number[0] == '-')

{

number = number.Substring(1);

if (number == " ")

{

valid = false;

}

}

//先考虑不带- $ 的情况,代码如下

for (int i = 0; i < number.Length - 1; i++)

{

if ((number[0] != '.' && !char.IsDigit(number[i])))//判断是否全部是整数

{

valid = false;

break;

}

}

if (valid)//判断有小数时的情况

{

//number[0] == '.' 表示数的第一个位置是否为 '.'

//number[number.Length - 1] == '.'表示数的最后一个位置是否为'.'

//(number.IndexOf('.') != https://www.wendangku.net/doc/859133502.html,stIndexOf('.'))判断是否是一个小数点'.'

//(number.IndexOf('.') >= 0 && number.IndexOf('.') < number.Length - 3))判断小数点后的精度是否为两位或小于两位

if((number[0] == '.'|| number[number.Length - 1] == '.' || (number.IndexOf('.') != https://www.wendangku.net/doc/859133502.html,stIndexOf('.')) ||

(number.IndexOf('.') >= 0 && number.IndexOf('.') < number.Length - 3))) {

valid = false;

}

}

if (valid)

{

System.Console.WriteLine("是");

}

else

{

System.Console.WriteLine("否");

}

}

DateTime

//打印当年的全部日历

int year = DateTime.Now.Year; ;

for (int ii = 1; ii <= 12; ii++)

{

System.Console.WriteLine();

System.Console.WriteLine("第{0}月", ii);

DateTime t = new DateTime(year, ii, 1);

int days = DateTime.DaysInMonth(year, ii);

System.Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", "日", "一", "二", "三", "四", "五", "六");

int flag = (int)t.DayOfWeek;

//计算每个月开始时应该有的空格

string[] date = new string[days + flag];//初始化一个数组,来存放每月的天数和天数前应该填充的空白

for (int i = 0; i < flag; i++)

{

date[i] = " ";

}

//把所有空格盒日期放在一个数组里

for (int j = 1; j <= days; j++)

{

date[j + flag - 1] = j.ToString();

}

//输出单个月日历每7个元素换行

for (int m = 0; m < days + flag; m++)

{

System.Console.Write(date[m] + "\t");

if ((m + 1) % 7 == 0)

{

System.Console.WriteLine();

}

}

//输完每个月的日历后换行

System.Console.WriteLine();

}

UI div+css 学习心得

在div布局中元素分为两类(块级元素,行及元素)。利用div+css布局主要的时要利用元素的float属性来达到布局的小过,但必须注意一下几点:

1.div,span 等元素在不同的浏览其上margin padd 一般默认为零。但是像ul ol ,h 等

标签元素在不同的浏览器上默认的有一个margin ,padd ,而且,默认值不同,在布局中要先把这些标签的默认边距给情况。

2.布局采取宽度优先的原则,即能定义宽度大小的尽量定义其大小,

3.如果设定一个元素的padding—top 或其他的几个内边距,那么一定要记得设定其他

的剩余的内边距的值,应为在不同的浏览其上,当设置一个时,其他没设置,有的默认为0,但是有的并不是。

4.利用浮动的同时,一定要记得清楚浮动带来的影响,利用clear:both 来完成。

c读取excel几种方法的体会

c读取excel几种方法的体会(2) (2):Com组件的方式读取Excel 这种方式需要先引用Microsoft.Office.Interop.Excel 。首选说下这种方式的优缺点 优点:可以非常灵活的读取Excel中的数据 缺点:如果是Web站点部署在IIS上时,还需要服务器机子已安装了Excel,有时候还需要为配置IIS权限。最重要的一点因为是基于单元格方式读取的,所以数据很慢(曾做过试验,直接读取千行、200多列的文件,直接读取耗时15分钟。即使采用多线程分段读取来提高CPU的利用率也需要8分钟。PS:CPU I3) 需要读取大文件的的童鞋们慎重。。。 附上单线程和多线程读取类: public class ExcelOptions { private Stopwatch wath = new Stopwatch(); /// <summary> /// 使用COM读取Excel /// </summary>

/// <param name=”excelFilePath”>路径 </param> /// <returns>DataTabel</returns> public System.Data.DataTable GetExcelData(string excelFilePath) { Excel.Application app = new Excel.Application(); Excel.Sheets sheets; Excel.Workbook workbook = null; object oMissiong = System.Reflection.Missing.Value; System.Data.DataTable dt = new System.Data.DataTable(); wath.Start(); try { if (app == null) { return null;

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法 最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。 读取excel文件的常用开源免费方法有以下几种: JDBC-ODBC Excel Driver jxl.jar jcom.jar poi.jar 下面分别对这几种方法分别进行探讨 1、JDBC-ODBC Excel Driver 这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可 查询excel表格。优点是:不需要第三方的jar包。 如下表样 首先在控制面板进行数据源ODBC登记 具体方法如下:

下面就是代码了。 package xuzhe;

import java.io.*; import java.sql.*; //java xuzhe.ExcelJDBC public class ExcelJDBC { public static void main(String[] args) throws SQLException{ Connection con = null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" ); Statement st = con.createStatement(); ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" ); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); System.out.println ("表格列数"+numberOfColumns ); System.out.println( rsmd.getColumnName(1)+ "," + rsmd.getColumnName(2) + "," + rsmd.getColumnName(3)); while (rs.next()) { for (int i = 1; i <= numberOfColumns; i++) { if (i > 1) System.out.print(", "); String columnValue = rs.getString(i); System.out.print(columnValue); } System.out.println(""); } rs.close(); st.close(); } catch(Exception ex) { System.err.print("Exception: "); System.err.println(ex.getMessage()); } finally { con.close(); } } } 执行结果如下:

(整理)C导入Excel数据的方式两种.

C#导入Excel数据的方式(两种) 方式一、导入数据到数据集对象,只支持Excel的标准格式,即不能合并单元格等等 ///

/// 导入数据到数据集中 /// 备注:此种方法只支持excel原文件 /// /// 文件路劲 /// 异常信息 /// public static System.Data.DataTable InputExcel(string Path, ref string exceptionMsg) { System.Data.DataTable dt = null; try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); System.Data.DataTable sheetDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string[] sheet = new string[sheetDt.Rows.Count]; for (int i = 0; i < sheetDt.Rows.Count; i++) { sheet[i] = sheetDt.Rows[i]["TABLE_NAME"].ToString(); }

c_实现excel数据高效导入到sql数据库

c#实现excel数据高效导入到sql数据库 本文来自: IT知道网(https://www.wendangku.net/doc/859133502.html,) 详细出处参考: https://www.wendangku.net/doc/859133502.html,/html/net/c/20081210/3092.html 本文实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是 System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,而且代码简单,下面测试代码导入一个6万多条数据的sheet,包括读取(全部读取比较慢)在我的开发环境中只需要10 秒左右,而真正的导入过程只需要4.5秒。 using System; using System.Data; using System.Windows.Forms; using System.Data.OleDb; namespace WindowsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //测试,将excel中的sheet1导入到sqlserver中 string connString = "server=localhost;uid=sa;pwd=sqlgis;database=master"; System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog(); if (fd.ShowDialog() == DialogResult.OK) { TransferData(fd.FileName, "sheet1", connString); } } public void TransferData(string excelFile, string sheetName, string connectionString) { DataSet ds = new DataSet(); try { //获取全部数据 string strConn = "Provider=Microsoft.Ace.12.0.OLEDB.12.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 12.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open();

C# 读取ExCEL表格的内容

C# winform 开发之Excel操作(二)------读取Excel表格 2011-07-14 17:28 读取Excel方法有多种,这里我主要讲两种方式。 方法一:sql语句读取Excel 这种方法,对于连接过数据库的人来说,一定不陌生。 原理大致为:通过select语句读取Excel表的内容,存放在dataset中。这样,我们就可以很方便操作Excel表格。 大致分为以下几步: 记得先添加命名空间: using System.Data.OleDb; //Excel表数据操作 1.创建连接,引用协议 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"; //其中参数”filePath“,是安放Excel的位置。例如:E:/1.xls。 OleDbConnection OleConn = new OleDbConnection(strConn); 2.打开连接,并执行sql语句,别忘了末尾关闭连接 OleConn.Open(); String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名称,比如sheet2,sheet3等等 //这是要执行的sql语句,你应该不陌生吧! OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn); DataSet OleDsExcle = new DataSet(); OleDaExcel.Fill(OleDsExcle, "Sheet1"); OleConn.Close(); 如果,还不清楚,不怕。下面,我们通过实例来加深理解。 源代码: public static DataTable ReadExcel(string filePath)

VS2008环境使用MFC操作读取excel文件

1. 建立MFC工程,MDI(基于对话框),其他默认即可。 2. 操作Excel文件初始化: a. project->add class->MFC class from typelib (项目->添加类->Typelib中的MFC类)导 入Excel.exe,一般都在C:/Program Files/Microsoft Office/Office12路径下(即选择你的office 安装路径下的excel.exe加入) b. 选中以下几项_Application,_WorkSheet,_WorkBook,WorkSheets,WorkBooks,Range,然 后导入; c. 导入后自动在工程中添加 CApplication,CWorkSheet,CWorkBook,CWorkSheets,CWorkBooks,CRange 这些类; 然后需要把这些类的头文件中的第一句话#import ".......EXCEL.EXE" nonamespace 删除; 引入之后如果编译遇到错误,Not enough actual parameters for macro 'DialogBoxW'. 让人头疼! 解决方法是在CRange类中, [cpp]view plainc opy 1.VARIANT DialogBox() 2.{

3. VARIANT result; 4. InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); 5.return result; 6.} DialogBox()前面添加下划线变成_DialogBox(),解决了! 3.操作excel文件 在“资源”里面选择MFC自动建立的对话框,双击“打开”按钮(若没有就自己做一个),然后程序会将你到对这个按钮的函数里,在函数中写如下内容:(文件是CxxxDlg.cpp xxx 是你的项目名称) [cpp]view plainc opy 1.void Cexcel打开3Dlg::OnBnClickedOk() 2.{ 3.// TODO: 在此添加控件通知处理程序代码 4. CApplication app; 5. CWorkbooks books; 6. CWorkbook book; 7. CWorksheets sheets; 8. CWorksheet sheet; 9. CRange range; 10. CRange iCell; 11. LPDISPATCH lpDisp; 12. COleVariant vResult; 13. COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); 14.if(!app.CreateDispatch(L"Excel.Application")) 15. { 16. AfxMessageBox(L"无法启动Excel服务器!"); 17.return; 18. } 19. books.AttachDispatch(app.get_Workbooks());

在C#读写Excel

在C#读写Excel 1:工程对excel类库的导入,如:c:\program files\Microsoft office\offiece11\excel.exe 2:命名控件的引入: using Microsoft.office.Interop.Excel; 3:如果是对一个已经存在的excel文件进行操作则: Application app=new Application(); Workbook wbook=app.Workbooks.Open("c:\\temp.xls",Type.Missing,Type.missing,Type.missing,Type.missin g,Type.missing,Type.missing,Type.missing,Type.missing,Type.missing,Type.missing,Type.missing,Ty pe.missing,Type.missing,Type.missing); Worksheet worksheet=(Worksheet)wbook.Worksheets[1]; 4:如果是新建一个excel文件: Application app=new Application(); Workbook wbook=app.Workbook.Add(Type.missing); Worksheet worksheet=(Worksheet)wbook.Worksheets[1]; 5:设置某个单元格里的内容: worksheet.Cells[1,2]="列内容" 6读取某个单元格里的内容 string temp=((Range)worksheet.Cells[1,2]).Text; 7设置某个单元格里的格式 Excel.Range rtemp=worksheet.get_Range("A1","A1"); https://www.wendangku.net/doc/859133502.html,="宋体"; rtemp.Font.FontStyle="加粗"; rtemp.Font.Size=5; 8 保存新建的内容: worksheet.SaveAs("c:\\temp.xls",Type.missing,Type.missing,Type.missing,Type.missing,Type.missi ng,Type.missing,Type.missing,Type.missing); 北大青鸟中关村软件学院 地址:北京市海淀区中关村大街49号大华科技商厦C座3层

matlab读取excel数据

matlab读取excel office的表格文件也就是xls文件本质上就是一个二维矩阵,二维矩阵是用来保存数据的最佳方式,所以在日常工作中,我们从其它地方获取的数据通常都被保存为xls格式,但处理数据时,我们却需要把xls文件的数据导入到matlab里进行处理。 如果你只处理一个文件并且只做一次的话,你可以手动来拷贝粘贴,这花费不了你太多时间。如果有很多xls文件,或者你的xls文件的内容可能随时被修改,那么下面的方法可以派上用场。 matlab自身提供了大量的函数,包括读取office文件。其中xlsread和xlswrite就是专门用来读取xls文件里的数据的。这两个函数的使用方法可以直接查看matlab自带的帮助。 xlsread对于纯数据的xls文件支持很完美,也就是说当xls文件里的每个格子都是“数”时,xlsread会直接返回一个实数矩阵。但是通常我们拿到xls文件并不是这样,它的表头多半是描述性文字,它的数据也有可能是文字,有些位置的数据还有可能是缺失的。xlsread 对这样的文件读取无能为力,或者说需要大量的时间去协调数据的位置信息。要是有一个函数,能够按照原有的顺序直接读取所有的单位格数据就好了。当然,这时候返回的矩阵就不能是一个数值矩阵了,它将会是一个cell矩阵,里面的每个元素类型可能不一样。 matlab本身并不提供这个功能,但是另外有一个函数officedoc完美的实现这个功能。这个函数包可以去OfficeDoc官方网站上去下载,解压缩后放到工作路径上即可。使用方法可以查询help officedoc。officedoc是收费函数包,但有免费版本,而且其免费版本可以实现上面我们所说的效果(收费版本主要是可以用来修改office文件)。 例子: 在matlab中读取xls格式的文件内容如应用如下函数: 1.bb=xlsread('c:feature.xls','a0:an40'),其中:c:feature.xls为文件存放的地址,a0:a40为将要读取的单元格的范围.bb为读取的矩阵在MATLAB中的变量名. 2.使用m文件脚本如下: Excel = actxserver('Excel.Application'); set(Excel, 'Visible', 1); Workbooks = Excel.Workbooks; Workbook = invoke(Workbooks, 'Open', [cd,'\feature\ABC.xls']); %% 读取ABC.xls:sheet1 a1(即R1C1)~an40(即R240c40) 范围内的 40by40 矩阵read_excel=ddeinit('excel','ABC.xls:sheet1'); feature1 = ddereq(read_excel, 'R1c1:R40c40'); feature1 %% 关闭ABC.xls invoke(Excel, 'Quit'); delete(Excel); 注意:在使用时将m文件与xls文件存于同一个目录下.另外:sheet1:可以重命名,且读取sheet的名称要和实际存放的名称相同. matlab读取excel,txt文件函数 注意matlab不识别中文,读写的文件中最好不含有中文 excel读取函数xlsread

C++读写excel

在Visual C++ 中调用Excel 2000 程蓬 #ifdef USE_OFFICEXP #import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" #import "c:\\Program Files\\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb" #import "c:\Program Files\Microsoft Office\Office10\MSWORD.olb" rename("ExitWindows","ExitWindowsEx") #import "c:\Program Files\Microsoft Office\Office10\excel.exe" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \ rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture") #else #import "c:\Program Files\Microsoft Office\Office\MSO9.dll" #import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" no_namespace #import "c:\Program Files\Microsoft Office\Office\MSWORD9.OLB" rename("ExitWindows","_ExitWindows") #import "c:\Program Files\Microsoft Office\Office\excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \ rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture") #endif 在开发软件时,经常要将数据输出到Excel 2000中,在Excel 2000中对该数据进行进一步地格式化处理或进行计算处理。在Visual Basic中处理起来较简单,Excel 2000的VB编程帮助中有较为详细的介绍。在Visual C++中如何进行处理了?利用Excel 2000的ActiveX Automate功能,处理起来同VB中类似。但要注意以下几点: 对于对象的属性值的读取或赋值,需要用GetProperty()或SetProperty(NewValue)函数,不能象VB中直接通过属性名称取值或赋值。例如:Worksheet.GetCount(), Worksheet.SetName(“Sheet1”)。 对集合对象中的成员对象的引用,必须使用集合对象的GetItem()函数。例如: Worksheets.GetItem(ColeVariant((long)1))或 Worksheets.GetItem(ColeVariant(“Sheet1”))取得第一个工作表。 在COM接口中,时常用到Variant,BSTR,SafeArray数据类型。Variant数据类型是一个联合,可表示几乎所有的类型的数据,具体用法见MSDN中的相关介绍,类_variant_t是对VARIANT数据类型的封装。在Excel 2000的VB编程帮助中,如果提到某函数或属性需要一个值,该值的数据类型通常是Variant,在封装Excel 2000对象的类定义中,说明了具体需要的数据类型。BSTR是一个包括了字符串和字符串长度的数据结构,类_bstr_t是对BSTR数据类型的封装。在Excel 2000的VB编程帮助中提到的字符串通常指BSTR。具体函数参数或属性的数据类型,见封装该对象的类的定义。SafeArray是一个包括数组和数组边界的结构,数组边界外的内容不允许访问。在Excel 2000的VB编程帮助中提到的数组是指SafeArray。关于SafeArray的处理,请见MSDN的相关帮助。 对于缺省参数和缺省值。在VB中,函数的参数可以空缺,在VC++中不允许,必须将所有的参数填写完全。如果你希望指定某个参数为缺省值,根据参数数据类型的不同,可指定不同的缺省值。当参

(完整word版)教你用C读写、删除、更新excel表格记录

教你用C#读写、删除、更新excel表格记录 如下图所示,编一个程序,鼠标单击窗体视图区(右边)时,获取一对坐标(X,Y),点击保存将点保存到excel表记录中。此外,还实现了删除、更新功能以及打开excel表功能。插入和更新比较简单,和操作一般的数据库一样,但是删除稍微有点复杂,不能用delete from [Sheet1$] where ID=x的方式删除,自己可以去试,主要是excel数据之间的关系不像关系数据库那么简单,oledb不提供这种方法。所以只能用专门操作excel表的(Microsoft.Office.Interop.Excel 名字空间下,先添加引用)来实现删除某条记录的功能。 源代码: using System; using System.Collections.Generic; using https://www.wendangku.net/doc/859133502.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; namespace Leation { public partial class FrmMain : Form { //定义变量 private OleDbConnection connection = null; private OleDbCommand cmd = null; private OleDbDataAdapter dataAdapter = null;

VC读取写入EXCEL2003文件

利用automation 具体如下: 1。你要在新建的工程中导入excel的类库。 以新建基础对话框工工程test为例。建好后通过类向导(ctrl+w)addclass选from a type libray...,excel2003的是excel.exe文件,在c:/program files/microsoft office/office11/文件夹下。选excel.exe,把所有的类都导入,注意使用Shift按键选择。 2。在testApp::InitInstance()中初始化, AfxOleInit();//加在initinstance方法里最前就好。 3. 在对话框中加一个按钮,双击按钮对应的处理函数如下: 别望了在加头文件: 在#include "stdafx.h"后面加#include "excel.h" 3.1//打开Excel文件,使用Excel程序显示,不读数据,也不写入数据,手工使用鼠标关闭Excel文件。 //声明操作excel文件类的对象 _Application objApp;// _application代表了EXCEL服务器 Workbooks objBooks; //workbooks表示整个Excel服务器(表现为一个.xls文件)里所有的表,(可以通过"新建"得到多个表,即MDI程序里的一个视窗一样,所有的视窗就是workbooks), COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); //检测电脑上是否安装了Excel程序。 if(!objApp.CreateDispatch("Excel.Application")) { AfxMessageBox("无法启动Excel程序,请正确安装!"); return; } objApp.m_bAutoRelease = TRUE; //??什么意思? objApp.SetVisible(TRUE); //打开Excel程序,没有显示任何数据。 objApp.SetUserControl(TRUE);//允许其它用户控制Excel,否则Excel将一闪即逝 //下面两句的功能和objBooks = objApp.GetWorkbooks(); 一样。 LPDISPATCH pWkBooks = objApp.GetWorkbooks(); //GetWorkbooks什么功能? objBooks.AttachDispatch(pWkBooks,TRUE); //将一个IDispatch连接附着于COleDispatchDriver对象 //获得当前程序所在的路径,excel文件在此路径下。 char CurrentProgramPath[MAX_PATH]; GetCurrentDirectory(MAX_PATH,CurrentProgramPath); CString ExcelFilePathName = CurrentProgramPath;//ExcelFilePathName表示excel文件的路径和文件名 ExcelFilePathName += "\\Data.xls";

C__操作Excel单元格格式解读

C# 操作Excel单元格格式 range.NumberFormatLocal = "@"; //设置单元格格式为文本 range = (Rangeworksheet.get_Range("A1", "E1"; //获取Excel多个单元格区域:本例做为Excel表头 range.Merge(0; //单元格合并动作 worksheet.Cells[1, 1] = "Excel单元格赋值"; //Excel单元格赋值 range.Font.Size = 15; //设置字体大小 range.Font.Underline=true; //设置字体是否有下划线 https://www.wendangku.net/doc/859133502.html,="黑体"; 设置字体的种类 range.HorizontalAlignment=XlHAlign.xlHAlignCenter; //设置字体在单元格内的对其方式 range.ColumnWidth=15; //设置单元格的宽度 range.Cells.Interior.Color=System.Drawing.Color.FromArgb(255,204,153.ToArgb(; //设置单元格的背景色 range.Borders.LineStyle=1; //设置单元格边框的粗细

range.BorderAround(XlLineStyle.xlContinuous,XlBorderWeight.xlThick,XlColorIndex. xlColorIndexAutomatic,System.Drawing.Color.Black.ToArgb(; //给单元格加边框range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop.Lin eStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone; //设置单元格上边框为无边框 range.EntireColumn.AutoFit(; //自动调整列宽 Range.HorizontalAlignment= xlCenter; // 文本水平居中方式 Range.VerticalAlignment= xlCenter //文本垂直居中方式 Range.WrapText=true; //文本自动换行 Range.Interior.ColorIndex=39; //填充颜色为淡紫色 Range.Font.Color=clBlue; //字体颜色 xlsApp.DisplayAlerts=false; //保存Excel的时候,不弹出是否保存的窗口直接进行保存

c读取excel文件的几种方法

c读取e x c e l文件的几 种方法 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

C# 读取EXCEL文件的几种经典方法 例子引入(读取时excel要打开) namespace读取excel测试 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } lsx|电子表格|*.xls|所有文件|*.*"; oString(); 法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { string strConn = "Provider=" +"Data Source="+ Path +";"+"Extended Properties=Excel ;"; OleDbConnection conn = new OleDbConnection(strConn); (); string strExcel = ""; OleDbDataAdapter myCommand = null; DataSet ds = null; strExcel="select * from [sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); (ds,"table1"); return ds; }

对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到 string strConn = "Provider=" +"Data Source="+ Path +";"+"Extended Properties=Excel ;"; OleDbConnection conn = new OleDbConnection(strConn); DataTable schemaTable = string tableName=[0][2].ToString().Trim(); 另外:也可进行写入EXCEL文件,实例如下: public void DSToExcel(string Path,DataSet oldds) { i++) { ewRow(); for(int j=0;j<[0].;j++) { nrow[j]=[0].Rows[i][j]; } ["Table1"].(nrow); } (newds,"Table1"); (); } 2.方法二:引用的com组件:读取EXCEL文件首先是的获取,将Office安装目录下的文件Copy到DotNet的bin目录下,cmd到该目录下,运行 TlbImp 得到Dll文件。再在项目中添加引用该dll文件. oString(); oString(); }

Excel操作的编程实现 c++

针对Excel表格文件操作的编程实现 编译:徐景周 下载本文示例源代码 简介 通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、列、单元格进行查询、插入、替换等操作,同时还可以将生成的Excel文件转换为按指定分隔符分隔的其它文本格式的文件。下面是把此方法用VC6编写的示例程序运行效果: 基本思路 基础实现方法同上篇文章《直接通过ODBC读、写Excel表格文件》相同,都是通过ODBC来把Excel表格文件当成数据库文件来进行读、写等操作,所以在Excel表格文件中写入的行头名必须是唯一的(不要重名,相当于数据库中的ID 值)。本文中对Excel文件的操作都被封装进一个类CSpreadSheet中,通过它我们可以非常简便的实现各种Excel表格数据操作,并且可以对该类进行扩充来满足自己的需求。

具体实现 一、包含Excel文件操作类头文件 #include "CSpreadSheet.h" 二、新建Excel文件,并写入默认数据 // 新建Excel文件名及路径,TestSheet为内部表名 CSpreadSheet SS("c:\\Test.xls", "TestSheet"); CStringArray sampleArray, testRow; SS.BeginTransaction(); // 加入标题 sampleArray.RemoveAll(); sampleArray.Add("姓名"); sampleArray.Add("年龄"); SS.AddHeaders(sampleArray); // 加入数据 CString strName[] = {"徐景周","徐志慧","郭徽","牛英俊","朱小鹏"}; CString strAge[] = {"27","23","28","27","26"}; for(int i = 0; i < sizeof(strName)/sizeof(CString); i++) { sampleArray.RemoveAll(); sampleArray.Add(strName[i]); sampleArray.Add(strAge[i]); SS.AddRow(sampleArray); } https://www.wendangku.net/doc/859133502.html,mit(); 三、读取Excel文件数据 CSpreadSheet SS("c:\\Test.xls", "TestSheet"); CStringArray Rows, Column;

C操作EXCEL全解代码--资料

C勰作EXCELS解(代码) 提示:运行之前必须先引用Interop.Excel.dll模块 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb; using System.Windows.Forms; using System.Reflection; using Excel; namespace AnalysisSystem.DB { public class ExcelOperation { private string _fileName;// 保存路径名 public ExcelOperation(string fileName) { _fileName = fileName; } private OleDbConnection GetConnection() { string connectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0”,_fileName); OleDbConnection myConn = new OleDbConnection(connectString);// 建立链接 return myConn;

public System.Data.DataTable ExecuteTableResult(string strSql) ( System.Data.DataTable dt = new System.Data.DataTable(); try ( OleDbConnection conn = this.GetConnection(); OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);// 执行相关SQL 语句 da.Fill(dt); } catch (System.Exception ex) ( //do nothing } return dt; } public DataSet ExecuteSetResult(string strSql,string table_name) ( DataSet ds = new DataSet(); string temp_name = "[" + table_name + "$]”; try ( OleDbConnection conn = this.GetConnection(); OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn); da.Fill(ds,temp_name); } catch (System.Exception ex) ( //do nothing } return ds; } public string ExecuteOneResult(string strSql) ( string result = ""; System.Data.DataTable dt = new System.Data.DataTable(); try ( OleDbConnection conn = this.GetConnection(); OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn); da.Fill(dt); } catch (System.Exception ex) ( //do nothing }

相关文档
相关文档 最新文档