VC 设置EXCEL单元格的格式

 

 

示例---将所有单元格设置为文本格式:

 

	_Application app;		//Excel应用程序接口
	Workbooks books;		//工作薄集合
	_Workbook book;		//工作薄
	Worksheets sheets;		//工作表集合
	_Worksheet sheet;		//工作表
	Range range;			//Excel中针对单元格的操作都应先获取其对应的Range对象
	Font font;
	Range cols;
	/*
	COleVariant类为VARIANT数据类型的包装,在自动化程序中,通常都使用
	VARIANT数据类型进行参数传递。故下列程序中,函数参数都是通过COleVariant
	类来转换了的。
	*/
	//covOptional 可选参数的VARIANT类型
	COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

	if( !app.CreateDispatch(L"Excel.Application") ){
		this->MessageBox(L"无法创建Excel应用!");
		return;
	}

	//获取工作薄集合
	books=app.GetWorkbooks();
	//添加一个工作薄
	book=books.Add(covOptional);
	//获取工作表集合
	sheets=book.GetSheets();
	//获取第一个工作表
	sheet=sheets.GetItem(COleVariant((short)1));


	range.AttachDispatch(sheet.GetCells(),TRUE);//加载所有单元格 
	range.SetNumberFormat(COleVariant(L"@")); //将单元格设置为文本类型

	//合并单元格
	//加载要合并的单元格 
	range.AttachDispatch(sheet.GetRange(COleVariant(_T("A1")),COleVariant(_T("D1"))),TRUE); 
	range.Merge(COleVariant((long)0)); 



	range.AttachDispatch(sheet.GetCells(),TRUE);//加载所有单元格 
	range.SetItem(COleVariant((long)1),COleVariant((long)1),COleVariant(_T("数学系研究生课程统计")));  //A1
	range.SetItem(COleVariant((long)2),COleVariant((long)1),COleVariant(_T("课程名")));              //A2
	range.SetItem(COleVariant((long)2),COleVariant((long)2),COleVariant(_T("课时")));                //B2


 

   函数 SetNumberFormat() 用于设置单元格的格式,但是首先我们必须知道所有格式的标记。

 

文本类:
1
@ 指定内容按文本显示,主要用于编码、手机号等用数字表示的文本。设定该格式后,可以保证导出excel时,此类文本不会被转成数字显示。

数值类:
1
0.00 表示两位小数,例如3.10367显示为3.10
2
0.## 表示两位小数,当小数末位为0时,0将不显示。例如3.10显示为3.1
3
"#,##0.00 "表示两位小数,且显示千份位
4
#,##0.00;[Red]#,##0.00 表示负数红字
5
0.00;[Red]0.00;" " 表示负数红字,且数据为0时不显示
6
0.00;[Red](0.00);" "表示正数时两位小数,负数时两位小数并显示红色,0时不显示。0.00;[Red](0.00)只是一个示例,可以为任意的数字格式串,后边再加上;" "(空格)即表示数据为0时不显示。

日期类:
1
yyyy-m-d
2
yyyy-MM-dd
3
yyyy-MM-dd hh:mm:ss
4
yyyyMMdd

百分比:
1
0%
2
0.00%

详细请打开Excel2003,单元格右键,设置单元格格式,选一种格式,点自定义即可看到该格式的格式串;有的Excel格式串后有带”_”,在使用时,必须去掉。

 

 

你可能感兴趣的:(EXCEL)