怎么给一个Excel增加一个Sheet和删除一个Sheet?

xyaz1999 2009-03-24 04:24:34
请问,怎么给一个Excel增加一个Sheet和删除一个Sheet?
...全文
6857 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
swalp 2009-03-24
  • 打赏
  • 举报
回复

Excel.Sheets sheets = excel.Sheets;
Excel.Sheets sheets1 = excel.Sheets;
zzxap 2009-03-24
  • 打赏
  • 举报
回复
string currentSheet = "Sheet1";
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);

Excel.Worksheet objSheet=(Excel.Worksheet) newWorkbook.Worksheets.Add(excelWorksheet,Type.Missing,Type.Missing,Type.Missing);
kbtjh 2009-03-24
  • 打赏
  • 举报
回复
顶一下..答案都出来了
anwsp 2009-03-24
  • 打赏
  • 举报
回复
mark
benbirdar 2009-03-24
  • 打赏
  • 举报
回复

private Excel.Application ExcelApp = null;
private Excel.Workbooks workbooks = null;
private _Workbook workbook = null;
private _Worksheet worksheet = null;

/// <summary>
/// 向当前打开的excel中添加一个新的worksheet
/// </summary>
/// <param name="strNewSheetName">要添加的sheet的名称</param>
/// <param name="strSheetAfter">新建的工作表将置于此工作表之后</param>
/// <param name="strType">指定工作表类型。可为以下 XlSheetType 常量之一:xlWorksheet、
///xlChart、xlExcel4MacroSheet 或 xlExcel4IntlMacroSheet。如果要基于现有模板插入工作表,
///则请指定该模板的路径。</param>
/// <returns>添加成功与否</returns>
public bool AddWorksheet(string strNewSheetName, string strSheetAfter, object objType)
{
try
{
if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
{
int iCnt = 0;
_Worksheet wksheetA = null;

Sheets sheets = workbook.Worksheets;
iCnt = sheets.Count;

//获取前和后面的sheet
for (int i = 0; i < iCnt; i++)
{
_Worksheet wksheet = (_Worksheet)sheets.get_Item(i + 1);

if (wksheet.Name == strSheetAfter)
{
wksheetA = (_Worksheet)sheets.get_Item(i + 1);
}
}

//添加
if (wksheetA == null)
{
return false;
}
else
{
sheets.Add(System.Reflection.Missing.Value, wksheetA, 1, objType);

}

//命名
for (int i = 0; i < iCnt; i++)
{
_Worksheet wksheet = (_Worksheet)sheets.get_Item(i + 1);
if (wksheet.Name == strSheetAfter)
{
_Worksheet wkst = (_Worksheet)sheets.get_Item(i + 2);
wkst.Name = strNewSheetName;
}
}

return true;
}
return false;
}
catch (Exception ex)
{
Console.Write(ex.ToString());
//System.Windows.Forms.MessageBox.Show(ex.Message + "-" + ex.StackTrace);
return false;
}
}

/// <summary>
/// 从当前打开的excel中删除一个sheet
/// </summary>
/// <param name="strSheetName">要删除的sheet的名称</param>
/// <returns>删除成功与否</returns>
public bool DeleteWorksheet(string strSheetName)
{
try
{
if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
{
int iFlag = 0;
int iCnt;

Sheets sheets = workbook.Worksheets;
iCnt = sheets.Count;

for (int i = 0; i < iCnt; i++)
{
_Worksheet wksheet = (_Worksheet)sheets.get_Item(i + 1);
if (wksheet.Name == strSheetName)
{
iFlag = 1;
wksheet.Delete();
break;
}
}

if (iFlag == 1)
{
return true;
}
else
{
return false;
}
}
return false;
}
catch
{
return false;
}
}
liumj2001 2009-03-24
  • 打赏
  • 举报
回复
copy添加的代码
string strexname;//计算得出的excel模板文件名
object missing = System.Reflection.Missing.Value;
//excel操作
GlobalClass.myExcel = new Excel.Application();
GlobalClass.myExcel.Visible = false; //激活Excel
Workbook wBook = GlobalClass.myExcel.Workbooks.Add(true);
//Worksheet wSheet = (GlobalClass.myExcel.Worksheet)wBook.ActiveSheet;
//设置禁止弹出保存和覆盖的询问提示框
GlobalClass.myExcel.DisplayAlerts = false;
GlobalClass.myExcel.AlertBeforeOverwriting = false;

intdot = GlobalClass.strrepname.IndexOf(".");
strexname = GlobalClass.strrepname.Remove(intdot) + ".xls";
Excel.Application ThisApplication = new Excel.ApplicationClass();
Excel.Workbook ThisWorkBook;
//如果存在就COPY模板文件
if (File.Exists(strexname))
{
//打开excel文件



//打开模板
ThisWorkBook = ThisApplication.Workbooks.Open(strexname, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
//添加模板工作区
GlobalClass.myexwkb = (Excel.Worksheet)ThisWorkBook.Sheets[1];


}
else
{
GlobalClass.myexwkb = (Excel.Worksheet)GlobalClass.myExcel.Worksheets[1];
}

删除很简单,就不写了。
david_anwei 2009-03-24
  • 打赏
  • 举报
回复
using Excel = Microsoft.Office.Interop.Excel;
david_anwei 2009-03-24
  • 打赏
  • 举报
回复
添加

private void button1_Click(object sender, System.EventArgs e)
{
object missing = System.Reflection.Missing.Value;
Excel.ApplicationClass myExcel = new Excel.ApplicationClass();

Excel._Workbook xBk ; //工作薄
Excel._Worksheet xSt; //工作Sheet

xBk = myExcel.Workbooks.Add(true);

for (int i = 0; i < 5; i ++)
{
xSt = (Excel._Worksheet)xBk.ActiveSheet;
xSt.Name ="chenms_" + i ;
myExcel.Cells[2,2]="chenms";
if(i < 4)
{
myExcel.Sheets.Add(missing,missing,1,Excel.XlSheetType.xlWorksheet);
}
}
myExcel.Visible = true;
xBk.SaveAs(@"d:\cms.xls",missing,missing,
missing,missing,missing,Excel.XlSaveAsAccessMode.xlShared,
missing,missing,missing,missing,missing);
myExcel.Quit();



}
cppfaq 2009-03-24
  • 打赏
  • 举报
回复
删除:
            xlApp.DisplayAlerts = false; //注意一定要加上这句
((Excel.Worksheet)workBook.Worksheets[2]).Delete();
xlApp.DisplayAlerts = true;//注意一定要加上这句

cppfaq 2009-03-24
  • 打赏
  • 举报
回复
添加:
private void AddWorksheetToExcelWorkbook(string fullFilename, string worksheetName)
{
try
{
xlApp = new Excel.Application();
if (xlApp == null) return;

xlApp.Visible = true;
xlWorkbook = xlApp.Workbooks.Open(fullFilename, 0, false, 5, "", "", false, XlPlatform.xlWindows, "", true,
false, 0,
true, false, false);
xlSheets = xlWorkbook.Sheets as Sheets;

xlNewSheet = (Worksheet) xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing);
xlNewSheet.Name = worksheetName;
xlWorkbook.Save();
xlWorkbook.Close(Type.Missing, Type.Missing, Type.Missing);
xlApp.Quit();
}
finally
{
Marshal.ReleaseComObject(xlNewSheet);
Marshal.ReleaseComObject(xlSheets);
Marshal.ReleaseComObject(xlWorkbook);
Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
}
jietuan 2009-03-24
  • 打赏
  • 举报
回复
你添加对office libaray的引用,使用Excel.Application 和 WorkBook ,你在网上随便搜索一下用.net操作Excel.
源码链接: https://pan.quark.cn/s/a4b39357ea24 微信小程序是由腾讯公司设计的一种轻量级应用开发平台,主要面向移动设备,旨在为用户带来无需下载安装即可直接使用的应用服务体验。在微信小程序的开发实践中,"模仿美团菜单 swiper分类菜单"是一项常见的技术应用,其目的是达成与美团外卖应用相似的交互模式,使用户能够轻松地浏览和挑选各种商品或服务。 在微信小程序的技术体系中,`swiper`组件属于轮播图功能模块,通常用于呈现多张图片或卡片式的切换界面,能够达成动态滑动展示不同分类菜单的功能。在模拟美团菜单的应用情境下,`swiper`组件一般与`swiper-item`组件协同工作,每一个`swiper-item`对应一个分类,用户可通过左右滑动来切换不同的分类菜单。 为了达成这样的功能,首先需要在微信小程序的`json`配置文档中引入`swiper`组件,并在`wxml`结构文档中构建相应的布局代码,将每个分类以`swiper-item`的形式进行组织。同时,需要在`wxss`样式文档中定义恰当的样式,保证分类菜单的视觉呈现符合设计规范。 接下来,我们将在`js`逻辑文档中处理`swiper`的切换逻辑,通过监听`bindchange`事件来识别当前选中的分类,并根据这一信息动态获取对应的子菜单信息。为了达成类似美团的层级菜单功能,可能还需要借助`picker`或`navigator`组件来展示二级分类或商品详情。 在开发阶段,需要关注以下关键点: 1. 数据绑定:保证数据与界面之间的双向链接准确无误,以便在选择分类时即时更新显示内容。 2. 动态加载:针对大量数据,可能需要采取异步加载机制,防止一次性加载过多内容引发性能瓶颈...
代码下载地址: https://pan.quark.cn/s/72bd50ecb2fb 《微信飞机大战素材详解》 微信飞机大战作为一款广受欢迎的休闲游戏,凭借其便捷的操作方式和紧张刺激的游戏过程,赢得了众多用户的青睐。本文将系统性地剖析这款游戏的关键素材,旨在帮助开发者全面掌握游戏的设计理念与实现方法。 我们聚焦于游戏的核心构成——"AirplaneResource"。此名称一般指向游戏资源库,其中收纳了游戏中所有的视觉素材、音频资料以及动画元素。在微信飞机大战的语境下,这些资源构成了游戏画面呈现、音效播放和动态效果的基础。 1. **图像素材**:游戏中的飞机造型、敌方单位、弹药以及爆炸效果等视觉元素,均以图像素材的形式进行展示。图像素材通常涵盖PNG或JPG格式的静态图片,也包括GIF或APNG格式的动态图片。开发者需要细致地设计并优化这些图像,确保在各种设备上都能实现流畅的渲染,同时维持视觉表现力。 2. **声音素材**:游戏的背景音乐、射击音效、爆炸声等音频片段,对于构建游戏氛围具有决定性作用。这些音频文件可能以MP3、WAV或OGG格式进行存储,开发者需要权衡音频的压缩程度与音质,以确保在不牺牲游戏体验的前提下,有效控制文件体积。 3. **动画序列**:飞机的飞行轨迹、攻击动作、爆炸过程等动态表现,通常借助序列帧动画技术实现。这些序列帧图片组合而成的动画,通过编程控制播放速率和顺序,为游戏增添生动的动态效果。 4. **物理接触判定**:游戏中飞机与弹药之间的接触判定,是通过算法完成的。开发者可能会采用基础的矩形接触判定或更精密的像素级接触判定,以保证游戏的公平性和挑战性。 5. **游戏规则**:微信飞机大战的得分机制、生命值系统、敌机生成逻辑等...

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧