400分求一C#函数:彻底删除EXCEL中某SHEET的第一行

pansy5 2010-04-02 01:56:44
要求:返回BOOL值
参数:String ExcelPath(EXCEL物理地址)
String SheetName(EXCEL工作簿名称)
Int LineSNumber(要删除工作簿里的某行数)


要彻底地删除.......要跟手动在EXCEL表里删除的效果
谢谢大家帮忙!

由于单帖限制,其余300分我另开帖,回复即可

...全文
399 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pansy5 2010-04-02
  • 打赏
  • 举报
回复
wzp144650来领分,过一会我再发


http://topic.csdn.net/u/20100402/16/cb07b209-dc06-4d15-bc91-d587de5ae32d.html
cococzj 2010-04-02
  • 打赏
  • 举报
回复
以上代码需要引用
using Excel = Microsoft.Office.Interop.Excel;
cococzj 2010-04-02
  • 打赏
  • 举报
回复
Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
//根据url打开excel
Excel.Workbook xlWorkbook = xlApp.Workbooks.Add(ExcelPath);
//设置要操作的工作页
Excel.Worksheet xSheet = (Excel.Worksheet)Workbooks.Sheets[pageIndex];
xSheet.Activate();
//得到从rowIndex1到rowIndex2的行
Excel.Range range = xSheet.get_Range(xSheet.Cells[rowIndex1, 1], xSheet.Cells[rowIndex2, xSheet.Columns.Count]);
range.Select();
range.Delete(System.Reflection.Missing.Value);
王子样 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wzp144650 的回复:]

using System;
using System.Collections.Generic;
using System.Text;
using Aspose.Cells;

namespace ConsoleApplication12
{
class Program
{
static void Main(string[] args)
……
[/Quote]

试一下看看。
wzp144650 2010-04-02
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using Aspose.Cells;

namespace ConsoleApplication12
{
class Program
{
static void Main(string[] args)
{
if (DeleteRow("D:\\SS.XLS", "sheet1", "0"))
Console.WriteLine("true");
else
Console.WriteLine("false");
Console.Read();
}

public static bool DeleteRow(string ExcelPath, string SheetName, string LineSNumber)
{
bool isDelete = false;
try
{
Workbook workbook = new Workbook();
workbook.LoadData(ExcelPath);
Worksheet sheet = workbook.Worksheets[SheetName];
sheet.Cells.DeleteRow(Int32.Parse(LineSNumber));
workbook.Save(ExcelPath);
isDelete = true;
}
catch (Exception ex)
{
isDelete = false;
}
return isDelete;
}
}
}


需要引用aspose.cells组件
下载地址
http://download.csdn.net/source/2192653
pansy5 2010-04-02
  • 打赏
  • 举报
回复
我还顶!!!!
pansy5 2010-04-02
  • 打赏
  • 举报
回复
自己顶!!
Code従業員 2010-04-02
  • 打赏
  • 举报
回复
建议用VBA删除,C#的话我代码在家,下班才拿的到,懒的写了
Columns("A:A").Delete Shift:=xlToLeft
pansy5 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 icdbow 的回复:]
能不能开EXCEL?
[/Quote]

什么意思?
Code従業員 2010-04-02
  • 打赏
  • 举报
回复
能不能开EXCEL?
private void Save2Excel() { //string file = "F:\\11\\ck.xlsx"; //string path = "F:\\11\\excel\\"; string time = DateTime.Now.ToString("yyyyMMdd"); string file = System.Windows.Forms.Application.StartupPath + "\\ck.xlsx"; string path = System.Windows.Forms.Application.StartupPath + "\\excel\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string saveName1 = path + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"; excel = new CCExcel(file,saveName1); excel.Exceldata(); } private void textBox1_TextChanged(object sender, EventArgs e) { Form1.name = textBox1.Text.ToString(); } private void Form1_Load(object sender, EventArgs e) { comboBox1.Text = 11.ToString(); comboBox2.Text = 100.ToString(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { Form1.comB1 = comboBox1.Text.ToString(); } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { Form1.comB2 = comboBox2.Text.ToString(); } } public class CCExcel { public Excel.Application appExcel; public Excel.Workbooks wbs; public Excel.Workbook wb; public Excel.Worksheets wss; public Excel.Worksheet ws; private string fileName; private string saveName; public CCExcel(string fileName,string saveName) { // //TODO: 在此处添加构造函数逻辑 // this.fileName = fileName; this.saveName = saveName; } public void Exceldata() { Create(); //Open(fileName); Data2Excel(); Save(saveName); //Save(wb,saveName); //appExcel.ActiveWorkbook.SaveCopyAs(fileName); //判断当前激活的表,并保存这个表。否则,保存时会弹出“是否保存Sheet1.xlsx”的对话框 wb.Close(Type.Missing, Type.Missing, Type.Missing); wbs.Close(); appExcel.Quit(); wb = null; wbs = null; appExcel = null; GC.Collect(); } private void Create()//创建一个Excel对象 { appExcel = new Excel.Application(); wbs = appExcel.Workbooks; wb = wbs.Add(true); //ws = (Excel.Worksheet)wb.ActiveSheet;//这是一个只读sheets集合 //Excel.Worksheet worksheet = wb.ActiveSheet as Excel.Worksheet;//这也是一个只读sheets集合 //Excel.Worksheet ws = (Worksheet)wb.Worksheets[1];//创建工作页sheet单页 ws = wb.Worksheets[1] as Worksheet; //第一个sheet页 ws.Name = "ck"; //这里修改sheet名称 } public void Open(string fileName) { appExcel = new Excel.Application(); wbs = appExcel.Workbooks; wb = wbs.Add(fileName); wb = wbs.Open(fileName,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); }
DZH/FXJ引用外部数据的DLL公式FMLDATA.DLL(DZH/FXJ引用外部数据的DLL公式)免费下载 一、DLL主要功能: 适用平台: 大智慧新一代V2.0(仅支持以分析家为内核的DZH版本,不支持DZH经典版本)、分析家(在V6.0上测试通过,在其它版本用应该也没问题) ,以下简称DZH。 主要功能: 1)在DZH公式读取外部数据(这里称为FMLDATA文件数据,该数据文件格式见下文)。例如,要在DZH公式读入第三方的数据并与DZH其它数据一起进行分析,我们可以首先将数据写入FMLDATA文件,然后在DZH公式象引用DZH本身直接引用。 2)将DZH序列数据写入外部文件。例如,我们要将DZH现有数据或者自己编写的公式的计算结果导出来,在EXCEL等外部软件进一步处理。(与FinDataTools工具的区别是:FMLDATA.DLL导出的是DZH原始数据或公式计算结果,而FinDataTools直接从DZH/FXJ读取数据。) 适用对象:需要读取自己定制的外部数据而又不想自己用C/C++写接口的DZH/FXJ用户。 声明:本DLL不含任何恶意代码,但使用风险自担。 二、下载:点击这里下载(近100KB)。 三、安装方法: 1、下载后用WINRAR解压得到FMLDATA.DLL和FMLDATA.TXT两个文件。 2、将FMLDATA.DLL复制到DZH2安装目录,一般为c:\dzh2。如果是FXJ一般为c:\superstk等. 3、在DZH安装目录下建立一个名为FMLDATA的文件夹,如c:\dzh2\fmldata(这一步是必须的,否则无法使用)。DLL公式读取或写入的数据都在这个文件夹。 至此,安装完成,下面就是如何使用了。 四、使用方法: FMLDATA.DLL提供了两个公式/函数,一个用于写数据,一个用于读数据。 (一)写数据: 写数据的公式为: "FMLDATA@WRITE"(X,N) 第一个参数X是个序列(指标),可以是CLOSE、OPEN等,也可以是公式间计算结果,要求序列值在浮点型值范围之内,一般在正负20亿之间,如果不在该范围之内,建议改变单位;第二个参数N是个数值,表示序列编号,例如我们把CLOSE保存为第4个序列,N为4。 将数据保存为外部文件时,根据当前股票代码、序列编号、分析周期这三个信息在fmldata文件夹生成形式为“XXXXXX.N.YYY”的文件。其, XXXXXX为股票代码,如深发展为000001等,由于沪市指数代码与深市股票代码重复,所以沪市指数代码在原代码前加1,例如上证综指为000001,则这里的XXXXXX为1000001(7位);N是编号,由用户自己指定,应为大于0的整数;YYY为分析周期,如果是日线数据,则YYY=DAY,分笔、1分钟、5分钟、15分钟、30分钟、60分钟、周、月、多日、季度、半年、年的值分别为TICK、MIN1、MIN5、MIN15、MIN30、MIN60、WEEK、MONTH、NDAYS、QUARTER、SEMIYEAR、YEAR。 举例: 例1、将收盘价写入到外部文件 新建一公式,设名为TESTW,输入 V1:"FMLDATA@WRITE"(C,4); ,在深发展(000001)日K线状态下,键入TESTW,在指标区查看公式TESTW结果的同时,将在FMLDATA目录生成一个名为000001.4.DAY的二进制文件(这个文件如何在其它软件使用见下文),如果同名文件已经存在,将覆盖。如果我们键入000002,切换到万科日K线,将生成名为000002.4.DAY的文件;如果切换到上证指数,则生成1000001.4.DAY文件。 注意:如果是DZH,写数据时请将光标移至最后一根K线,否则只保存光标之前的数据,FXJ好象没有这个问题。光标一动,数据就重新写入一次。 例2、将收益率保存到外部文件 建一公式: A:=C/REF(C,1)-1; B:"FMLDATA@WRITE"(A,101); 请在还权状态下使用该公式。如果处于000001的日K线图,则生成000001.101.DAY。 例3、将周收益率保存到外部文件在例2基础上,将“分析周期”改为“周线图”,则周收益率保存到000001.101.WEEK文件。 例4、将沪市A股所有股票的收盘价、成交量保存到外部文件 建一名为TESTCV公式: A:"FMLDATA@WRITE"(C,4); B:"FMLDATA@WRITE"(V/10000,5); 保存后。选择“条件选股”,选股指标选择“TESTCV”,分析周期选“日线”,选“使用除权后数据”,指标线选“B”,条件选“大于0”,选股范围选择“上证A股”,执行选股,将生成600000.4.DAY、60

110,567

社区成员

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

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

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