高分求文件格式转化程序库!帮推有分 500分求将word、powerpoint和Excel文件转成txt文件的程序源码或者程序库!如果好用,立即给分!帮推的也有分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我做过读取excel的函数,你自己看看有没有帮助/**********************************************************************作者:梁文林时间:功能:访问excel函数,需要注意的问题: 调用之前必须启动com环境(如AfxOleInit(),::CoInitialize(NULL))输出函数:1、NewExcel(name) 创建新的excel文件,name为创建的文件名2、OpenExcel(name) 打开已有的excel文件,name为打开的文件名3、SetSheetName(nSheet,name) 设置第nSheet页的name4、ClearSheet(nSheet) 清空第nSheet页的内容5、SetSheetNum(nNum) 设置Sheet页的数目6、SetExcelVisible(bVisible) 设置当前Excel是否可见 7、SetCellValue(cell,value) 设置第cell格的内容 8、SetCellValue(cell1,cell2,value) 设置第cell1到cell2之间的内容9、SetSheet(nNum) 设置当前的Sheet页10、CloseExcel 关闭当前的excel**********************************************************************/// LwlExcel.cpp: implementation of the CLwlExcel class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "LwlExcel.h"//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////CLwlExcel::CLwlExcel(){// ::CoInitialize(NULL);}CLwlExcel::~CLwlExcel(){// ::CoUninitialize();}void CLwlExcel::NewExcel(LPCTSTR lpctName){ Workbooks books; COleVariant FileName(lpctName, VT_BSTR); COleVariant fileformat((short)1); COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if(!m_app) LoadApp(); if(!m_app) return; if(m_app){ books = m_app.GetWorkbooks(); // Get an IDispatch pointer } if(books) m_book = books.Add(covOptional); if(m_book){ m_book.SaveAs(FileName,fileformat,covOptional, covOptional,covOptional, covOptional,1,covOptional, covOptional,covOptional,covOptional); } books.ReleaseDispatch();}void CLwlExcel::OpenExcel(LPCTSTR lpctName){ Workbooks books; COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if(!m_app) LoadApp(); if(!m_app) return; // Get Workbooks collection. books = m_app.GetWorkbooks(); // Get an IDispatch pointer if(!books) return; m_book = books.Open(lpctName, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional ); books.ReleaseDispatch();}void CLwlExcel::SetSheetName(int nSheet, LPCTSTR lpstName){ _Worksheet sheet; if(!GetSheet(nSheet,sheet)) return; sheet.SetName(lpstName); sheet.ReleaseDispatch();}void CLwlExcel::LoadApp(){ m_app.CreateDispatch("Excel.Application");}void CLwlExcel::UnloadApp(){ try{ COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if(m_app){ if(m_book){ m_book.Save(); m_book.SetSaved(TRUE); m_book.Close(covOptional,covOptional,covOptional); m_book.ReleaseDispatch(); } if(m_sheet) m_sheet.ReleaseDispatch(); m_app.Quit(); m_app.ReleaseDispatch(); // m_app.Quit(); } } catch(...){ }}void CLwlExcel::ClearSheet(int nSheet){ _Worksheet sheet; Range range; if(!GetSheet(nSheet,sheet)) return; range = sheet.GetRange(COleVariant("A1"), COleVariant("W40")); if(!range){ sheet.ReleaseDispatch(); return; } range.Clear(); range.ReleaseDispatch(); sheet.ReleaseDispatch();}void CLwlExcel::SetSheetNum(int nNum){ if(nNum<=0){ TRACE("sheet小于等于0"); return; } if(m_app) m_app.SetSheetsInNewWorkbook(nNum);}void CLwlExcel::SetExcelVisible(BOOL bVisible){ if(m_app) m_app.SetVisible(bVisible);}void CLwlExcel::SetCellValue(LPCTSTR lpctRange, LPCTSTR lpctValue){ if(!m_sheet) return; COleVariant Cell1(lpctRange); COleVariant CellValue(lpctValue); Range range = m_sheet.GetRange(Cell1,Cell1); if(!range) return; range.SetValue(CellValue); range.ReleaseDispatch();}void CLwlExcel::SetCellValue(LPCTSTR cell1, LPCTSTR cell2, LPCTSTR lpctValue){ if(!m_sheet) return; COleVariant Cell1(cell1); COleVariant Cell2(cell2); COleVariant CellValue(lpctValue); Range range = m_sheet.GetRange(Cell1,Cell2); if(!range) return; range.SetValue(CellValue); range.ReleaseDispatch();}void CLwlExcel::SetSheet(int nSheet){ GetSheet(nSheet,m_sheet);}BOOL CLwlExcel::GetSheet(int nSheet, _Worksheet &sheet){ BOOL bRet=TRUE; Worksheets sheets; if(m_book){ sheets= m_book.GetSheets(); if(!sheets) bRet = FALSE; else{ int nCount = sheets.GetCount(); if(nSheet>nCount) bRet = FALSE; else{ sheet = sheets.GetItem( COleVariant((short)(nSheet)) ); if(!sheet) bRet = FALSE; } } } else bRet = FALSE; if(sheets) sheets.ReleaseDispatch(); return bRet;}void CLwlExcel::CloseExcel(){ UnloadApp();}/*******************************************************合并cell/*******************************************************/void CLwlExcel::MergeCell(LPCTSTR strCell1, LPCTSTR strCell2){ try{ if(!m_sheet) return; COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); COleVariant cell1(strCell1); COleVariant cell2(strCell2); Range range = m_sheet.GetRange(cell1,cell2); if(!range) return; range.Merge(covOptional); range.ReleaseDispatch(); } catch(...){ }}void CLwlExcel::UnMergeCell(LPCTSTR strCell1, LPCTSTR strCell2){ try{ if(!m_sheet) return; COleVariant cell1(strCell1); COleVariant cell2(strCell2); Range range = m_sheet.GetRange(cell1,cell2); if(!range) return; range.UnMerge(); range.ReleaseDispatch(); } catch(...){ }}void CLwlExcel::AddLine(double x1, double y1, double x2, double y2){ try{ if(!m_sheet) return; COleVariant Start((long)DISP_E_PARAMNOTFOUND, VT_ERROR); COleVariant End((long)DISP_E_PARAMNOTFOUND, VT_ERROR); COleVariant By((long)DISP_E_PARAMNOTFOUND, VT_ERROR); COleVariant Periods((long)DISP_E_PARAMNOTFOUND, VT_ERROR); Shapes shapes; Shape shape; Lines lines; Line line; shapes = m_sheet.GetShapes(); if(!shapes) return; int nShape = shapes.GetCount(); line = shapes.AddLine(x1,y1,x2,y2); if(line){ line.SetWidth(10); } nShape = shapes.GetCount(); shapes.ReleaseDispatch(); shape.ReleaseDispatch(); } catch(...){ }} 由于程序可能需要移植到Unix下,所以最好不用COM。不过还是谢谢你 编辑框如何实现? 请问如何判断用户在"Combo box组合框"里选中了哪一项? 是什么函数? 谢谢你的帮助 急呀!!URLDownloadToFile 实现检查 版本更新 的 问题?? 求助!在线等! 请问网络编程方面有什么好书推荐 大哥大姐们帮帮忙,给小弟一份关于IJL(Intel Jpeg Library)的文档吧 请教大侠为什么我恢复数据库怎么总是不成功? 编辑框简单问题 想在外国发布共享软件,请问高手有关汇款事宜 CWindow和CWnd有什么不同? 这种要不要全局变量? 谁有用vc嵌入word2000开发的例子?急!分多多,不够再给!!!!
/**********************************************************************
作者:梁文林
时间:
功能:
访问excel函数,
需要注意的问题:
调用之前必须启动com环境(如AfxOleInit(),::CoInitialize(NULL))输出函数:
1、NewExcel(name) 创建新的excel文件,name为创建的文件名
2、OpenExcel(name) 打开已有的excel文件,name为打开的文件名
3、SetSheetName(nSheet,name) 设置第nSheet页的name
4、ClearSheet(nSheet) 清空第nSheet页的内容
5、SetSheetNum(nNum) 设置Sheet页的数目
6、SetExcelVisible(bVisible) 设置当前Excel是否可见
7、SetCellValue(cell,value) 设置第cell格的内容
8、SetCellValue(cell1,cell2,value) 设置第cell1到cell2之间的内容
9、SetSheet(nNum) 设置当前的Sheet页
10、CloseExcel 关闭当前的excel
**********************************************************************/// LwlExcel.cpp: implementation of the CLwlExcel class.
//
//////////////////////////////////////////////////////////////////////#include "stdafx.h"
#include "LwlExcel.h"//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////CLwlExcel::CLwlExcel()
{
// ::CoInitialize(NULL);
}CLwlExcel::~CLwlExcel()
{
// ::CoUninitialize();
}void CLwlExcel::NewExcel(LPCTSTR lpctName)
{
Workbooks books;
COleVariant FileName(lpctName, VT_BSTR);
COleVariant fileformat((short)1);
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!m_app)
LoadApp(); if(!m_app)
return; if(m_app){
books = m_app.GetWorkbooks(); // Get an IDispatch pointer
}
if(books)
m_book = books.Add(covOptional); if(m_book){
m_book.SaveAs(FileName,fileformat,covOptional,
covOptional,covOptional,
covOptional,1,covOptional,
covOptional,covOptional,covOptional);
}
books.ReleaseDispatch();
}void CLwlExcel::OpenExcel(LPCTSTR lpctName)
{
Workbooks books;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if(!m_app)
LoadApp(); if(!m_app)
return; // Get Workbooks collection.
books = m_app.GetWorkbooks(); // Get an IDispatch pointer
if(!books)
return; m_book = books.Open(lpctName,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional
);
books.ReleaseDispatch();
}void CLwlExcel::SetSheetName(int nSheet, LPCTSTR lpstName)
{
_Worksheet sheet; if(!GetSheet(nSheet,sheet))
return; sheet.SetName(lpstName);
sheet.ReleaseDispatch();
}void CLwlExcel::LoadApp()
{
m_app.CreateDispatch("Excel.Application");
}void CLwlExcel::UnloadApp()
{
try{
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(m_app){
if(m_book){
m_book.Save();
m_book.SetSaved(TRUE);
m_book.Close(covOptional,covOptional,covOptional);
m_book.ReleaseDispatch();
}
if(m_sheet)
m_sheet.ReleaseDispatch();
m_app.Quit();
m_app.ReleaseDispatch();
// m_app.Quit();
}
}
catch(...){
}
}void CLwlExcel::ClearSheet(int nSheet)
{
_Worksheet sheet;
Range range; if(!GetSheet(nSheet,sheet))
return; range = sheet.GetRange(COleVariant("A1"), COleVariant("W40"));
if(!range){
sheet.ReleaseDispatch();
return;
} range.Clear();
range.ReleaseDispatch();
sheet.ReleaseDispatch();
}void CLwlExcel::SetSheetNum(int nNum)
{
if(nNum<=0){
TRACE("sheet小于等于0");
return;
} if(m_app)
m_app.SetSheetsInNewWorkbook(nNum);
}void CLwlExcel::SetExcelVisible(BOOL bVisible)
{
if(m_app)
m_app.SetVisible(bVisible);
}void CLwlExcel::SetCellValue(LPCTSTR lpctRange, LPCTSTR lpctValue)
{
if(!m_sheet)
return;
COleVariant Cell1(lpctRange);
COleVariant CellValue(lpctValue);
Range range = m_sheet.GetRange(Cell1,Cell1);
if(!range)
return; range.SetValue(CellValue);
range.ReleaseDispatch();
}void CLwlExcel::SetCellValue(LPCTSTR cell1, LPCTSTR cell2, LPCTSTR lpctValue)
{
if(!m_sheet)
return;
COleVariant Cell1(cell1);
COleVariant Cell2(cell2);
COleVariant CellValue(lpctValue);
Range range = m_sheet.GetRange(Cell1,Cell2);
if(!range)
return; range.SetValue(CellValue);
range.ReleaseDispatch();
}void CLwlExcel::SetSheet(int nSheet)
{
GetSheet(nSheet,m_sheet);
}BOOL CLwlExcel::GetSheet(int nSheet, _Worksheet &sheet)
{
BOOL bRet=TRUE; Worksheets sheets; if(m_book){
sheets= m_book.GetSheets();
if(!sheets)
bRet = FALSE;
else{
int nCount = sheets.GetCount();
if(nSheet>nCount)
bRet = FALSE;
else{
sheet = sheets.GetItem( COleVariant((short)(nSheet)) );
if(!sheet)
bRet = FALSE;
}
}
}
else
bRet = FALSE; if(sheets)
sheets.ReleaseDispatch(); return bRet;
}void CLwlExcel::CloseExcel()
{
UnloadApp();
}/*******************************************************
合并cell
/*******************************************************/
void CLwlExcel::MergeCell(LPCTSTR strCell1, LPCTSTR strCell2)
{
try{
if(!m_sheet)
return;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant cell1(strCell1);
COleVariant cell2(strCell2);
Range range = m_sheet.GetRange(cell1,cell2);
if(!range)
return;
range.Merge(covOptional);
range.ReleaseDispatch(); }
catch(...){
}
}void CLwlExcel::UnMergeCell(LPCTSTR strCell1, LPCTSTR strCell2)
{
try{
if(!m_sheet)
return;
COleVariant cell1(strCell1);
COleVariant cell2(strCell2);
Range range = m_sheet.GetRange(cell1,cell2);
if(!range)
return;
range.UnMerge();
range.ReleaseDispatch();
}
catch(...){
}}void CLwlExcel::AddLine(double x1, double y1, double x2, double y2)
{
try{
if(!m_sheet)
return; COleVariant Start((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant End((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant By((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant Periods((long)DISP_E_PARAMNOTFOUND, VT_ERROR); Shapes shapes;
Shape shape;
Lines lines;
Line line;
shapes = m_sheet.GetShapes();
if(!shapes)
return;
int nShape = shapes.GetCount(); line = shapes.AddLine(x1,y1,x2,y2);
if(line){
line.SetWidth(10);
} nShape = shapes.GetCount();
shapes.ReleaseDispatch();
shape.ReleaseDispatch();
}
catch(...){
}
}