社区
C++ Builder
帖子详情
如何动态的在excel中创建某个sheet和它的列名,以及如何重命名sheet?
annkie
2003-06-16 10:36:14
请指教,如何创建某个sheet和它的列名,以及如何重命名sheet?
...全文
225
4
打赏
收藏
如何动态的在excel中创建某个sheet和它的列名,以及如何重命名sheet?
请指教,如何创建某个sheet和它的列名,以及如何重命名sheet?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
annkie
2003-06-16
打赏
举报
回复
谢了!
zzhong2
2003-06-16
打赏
举报
回复
Variant my_excel,all_workbooks,my_workbook,my_worksheet;
Variant my_range;
AnsiString columname,residue,cellname,rangename;
int i,j=1;
int count;
try
{
my_excel=CreateOleObject("excel.Application");//启动Excel
}
catch(...)
{
MessageBox(GetFocus(),"无法启动Excel","警告",MB_OK|MB_ICONSTOP);
Abort();
}
all_workbooks=my_excel.OlePropertyGet("WorkBooks");
Procedure Open("Open");
// all_workbooks.Exec(Open<<SaveDialog1->FileName);//打开一个已存在的Excel文件
my_excel.OlePropertySet("Visible",(Variant)true); //使Excel启动后可见
my_workbook=all_workbooks.OleFunction("Add");//新建一个工作薄
my_workbook=my_excel.OlePropertyGet("ActiveWorkbook");
my_worksheet=my_workbook.OlePropertyGet("ActiveSheet");
my_worksheet.OlePropertyGet("Rows",2).OleProcedure("Insert");//插入一行
//根据DBGrid的表头输出Excel表头
for(i=0;i<DBGridEh1->FieldCount;++i)
{
my_excel.OlePropertyGet("Cells",1,(i+1)).OlePropertySet("Value",DBGridEh1->Columns->Items[i]->Title->Caption.c_str());
}
//输出表体
ADOQuery1->DisableControls();
ADOQuery1->First();
for(j=2;!ADOQuery1->Eof;++j)
{
for(i=0;i<DBGridEh1->FieldCount;++i)
{
//向表格添加数据
my_excel.OlePropertyGet("Cells",j,(i+1)).OlePropertySet("Value",DBGridEh1->Columns->Items[i]->Field->AsString.c_str());
}
ADOQuery1->Next();
}
ADOQuery1->EnableControls();
my_worksheet.OlePropertyGet("Range","A1:D3").OlePropertyGet("Interior").OlePropertySet("ColorIndex",15); //改表格颜色
my_worksheet.OlePropertyGet("Range","A1:A3").OleProcedure("Merge",0); //合并单元格
my_worksheet.OlePropertyGet("Range","A1:D1").OlePropertyGet("Columns").OleProcedure("autofit"); //设置自适应列宽
// my_worksheet.OlePropertyGet("Range","A1:D3").OleProcedure("Merge",1);
my_worksheet.OlePropertyGet("Range","A1:D3").OlePropertySet("HorizontalAlignment",3); //居中
MessageBox(this->Handle,"请按确定彻底关闭Excel","通知",MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL);
my_excel.OleFunction("Quit");
annkie
2003-06-16
打赏
举报
回复
增加sheet我找到代码了,可是增加列名呢?
艾,操作excel该做一个专题了,好多时候碰到这样的问题,却没有资料,自己摸索总是有限。
runnerrunning
2003-06-16
打赏
举报
回复
我做过cell的
excel在bcb中鲜有研究
up...
VC++(VS2010)读写
Excel
文件代码(附示例)
【前言】 工作或学习
中
可能需要实现基于VC读\写
Excel
文件的功能,本人最近也遇到了该问题。
中
间虽经波折,但是最终还是找到了解决问题的办法。 在此跟大家分享,希望对跟我同样迷茫过的同学们有所帮助。 1、程序功能 1)打开一个
excel
文件; 2)显示到CListCtrl上; 3)新建一个
Excel
文件。 以上均在对话框
中
实现。 2、平台 VC++2010 3、实现方法 常用的
Excel
打开方式有两种 1)通过数据库打开; 2)OLE方式打开。 由于方式1)操作繁琐,经常出现莫名的错误,这里选用方式2). 4、准备步骤 首先新建一个Dialog窗体程序,添加list control和两个按钮 1)将
Excel
Lib文件夹拷贝到程序目录下; 2)将Export2
Excel
.h,Export2
Excel
.cpp两个文件添加到项目; 3)包含头文件,#include "
Excel
Lib/Export2
Excel
.h" 通过以上步骤在程序
中
引入了可以读取Excle文件的CExport2
Excel
类; 5、打开
excel
文件 通过按钮点击打开 void C
Excel
TestDlg::OnBnClickedButtonOpen
Excel
() { //获取文件路径 CFileDialog* lpszOpenFile; CString szGetName; lpszOpenFile = new CFileDialog(TRUE,"","",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"
Excel
File(*.xlsx;*.xls)|*.xls;*.xlsx",NULL); if (lpszOpenFile->DoModal()==IDOK) { szGetName = lpszOpenFile->GetPathName(); SetWindowText(szGetName); delete lpszOpenFile; } else return; //打开文件 //文件
中
包含多个
sheet
时,默认打开第一个
sheet
CExport2
Excel
Excel
_example;
Excel
_example.Open
Excel
(szGetName); //获取
sheet
个数 int i
Sheet
Num =
Excel
_example.Get
Sheet
sNumber(); //获取已使用表格行列数 int iRows =
Excel
_example.GetRowCount(); int iCols =
Excel
_example.GetColCount(); //获取单元格的内容 CString cs_temp =
Excel
_example.GetText(1,1); //AfxMessageBox(cs_temp); //List control上显示 //获取工作表
列名
(第一行) CStringArray m_HeadName; m_HeadName.Add(_T("ID")); for (int i=1;iGetItemCount()>0) { m_list.DeleteColumn(0); } //初始化ClistCtrl,加入
列名
InitList(m_list,m_HeadName); //填入内容 //第一行是标题,所以从第2行开始 CString num; int pos; for (int row = 2;row<=iRows; row++) { pos = m_list.GetItemCount(); num.Format(_T("%d"),pos +1); m_list.InsertItem(pos,num); for (int colum=1;columDoModal()==IDOK) { szGetName = lpszOpenFile->GetPathName(); SetWindowText(szGetName); delete lpszOpenFile; } else return; //文件全名称 CString csFileName = szGetName; //需要添加的两个
sheet
的名称 CString cs
Sheet
Name = "new
Sheet
"; CString cs
Sheet
Name2 = "new
Sheet
2"; // 新建一个
excel
文件,自己写入文字 CExport2
Excel
Excel
_example; //新建
excel
文件
Excel
_example.Create
Excel
(csFileName); //添加
sheet
,新加的
sheet
在前,也就是序号为1
Excel
_example.Create
Sheet
(cs
Sheet
Name);
Excel
_example.Create
Sheet
(cs
Sheet
Name2); //操作最开始添加的
sheet
:(new
Sheet
)
Excel
_example.Set
Sheet
(2); //添加表头
Excel
_example.WriteHeader(1,"第一列");
Excel
_example.WriteHeader(2,"第二列"); //添加核心数据
Excel
_example.WriteData(1,1,"数据1");
Excel
_example.WriteData(1,2,"数据2"); //保存文件
Excel
_example.Save(); //关闭文件
Excel
_example.Close(); } 7、注意事项 1)一般单个
Excel
文件包含多个
sheet
,程序默认打开第一个; 2)指定操作
sheet
,使用
Excel
_example.Set
Sheet
(2)函数; 3)打开文件时最左侧的
sheet
序号为1,新建
excel
时最新添加的
sheet
序号为1. 【后记】 本程序主要基于网络CSDN
中
---“
Excel
封装库V2.0”---完成,下载地址是:http://download.csdn.net/detail/yeah2000/3576494,在此表示感谢!同时, 1)在其基础上作了小改动,改正了几个小错误,添加了几个小接口; 2)添加了如何使用的例子,原程序是没有的; 3)详细的注释 发现不足之处,还请大家多多指教!
NPOI导出数据,操作
excel
(添加,修改)
适用情况,复杂的
列名
,比如
列名
有背景色,合并单元格,字体加粗等等多的个性化情况 NPOI它会把
excel
工作簿(workbook)里的
sheet
(工作表)的数据全部读取下来,所有的信息包括背景色,合并单元格等 具体实现方法看源码!
POI操作
Excel
导入和导出
它不象我们仅仅是用csv生成的没有格式的可以由
Excel
转换的东西,而是真正的
Excel
对象,你可以控制一些属性如
sheet
,cell等Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office...
python openpyxl
excel
重命名
列名
python openpyxl
重命名
excel
文件
列名
java导出
Excel
多个
sheet
、自定义
列名
仅作为学习笔记,供大家参考这里后台使用框架为若依。
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章