数据读入excel后,excel文件的保存路径问题

mayuliuze 2012-03-11 03:14:40
程序里写了一个方法{
//在做这些前,将Excel添加到引用中来!!!
Excel.Application excel = new Excel.Application();
excel.Visible = true;
//如果系统是Excl2007,添加的引用会不一样,代码如下:Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
if (excel == null)
{
MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
Excel.Workbook xlBook = excel.Workbooks.Add(true);
Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1];
int rows = data.GetLength(0);//行
int cols = data.GetLength(1);//列

//导入数据
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
if (data[i, j] != 0)
{
excel.Cells[i + 1, j + 1] = data[i, j].ToString().Trim();
}
}
}
try
{
xlBook.Saved = true;
xlBook.SaveCopyAs(xlsSaveFileName);




}
catch (Exception error)
{
MessageBox.Show(error.Message, "警告 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
finally
{
excel.Quit();
excel = null;
GC.Collect();
}
}
}
目前我想问的是当数据写入excel后,这个excel文件保存在哪里,我想添加saveFileDialog控件,但具体的代码和执行,不知道怎么做,请高手指点
...全文
78 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
使用说明 : 1、本程序可以作什么? 本程序功能分为两个部分: 一部分是:批量查找指定路径下的文件中的内容中,是否包含要查询的项目。并把查询出的内容分文件存储。 一部分是:将文本文件导入EXCEL中,可以将上一步查找的结果导入,也可以自己选择文件导入(支持多选)。 2、如何使用他? a、批量查找: 首先,在“读入位置”按钮处设置你所要读取的文件的存放位置,此时程序会自动读入文件夹下所有文件,以供选择;其次,用“>>”或“>”将要读取的文件选入读取队列,当然如果选错了可以用“<<”或“<”删除队列,或者鼠标双击选中项删除;再次,点击“+”按钮,添加查找项目到查找项目列表,一次只可以添加一条,如需添加多条则需要重复添加操作;如果添加错误可以双击选中项删除或选中后点击“-”按钮。最后,点击“开始查找”,程序将会把查找结果输出保存到指定路径下面的output文件夹下面,你可以选择是否打开目录查看。如果需要查询的文件文件头,可以选择“保留文件首行”。 b、EXCEL导入: 首先,选择导入方式,导入方式分为“查询结果导入”和“新选文件导入”两种;当选择“查询结果导入”时,本程序将把“读入位置”处“output”文件夹下文件批量导入EXCEL。当选择“新选文件导入”时,本程序在点击“开始导入”时将弹出窗口,您可以自己选择需要导入文件(支持多选),导入EXCEL。其次,设置导入文件时的分割符,默认为“|”,本程序只支持按照分隔符导入。最后,点击“开始导入”按钮开始导入。 3、本程序不判断所查找的文件类型 由于本程序在读入文件时,并没有校验文件的内容和文件类型,因此本程序会读取用户所选择的任意文件,即使此文件是二进制格式的。不论是查询或者是导入功能都是这样。本程序将按行读取所选择的文件(或者有换行符的),在读取完文件后,无论是否找到,都会创建和源文件相同类型的文件,即使是.exe或.rar(一般是打不开的),文件名存储为“output”+原文件名。即使没有找到任何相匹配的内容,本程序也会创建文件,这时后文件大小是0字节,可以按照大小排列看到。 4、请使用“清除文件”按钮及时清除查询结果 程序在查询和创建文件的过程中,不会判断是否已经执行过查询操作。如果已经执行过查询操作,“output”文件夹下就会存在查询出的文件,当再次执行查询时,本程序会在已存在的文件后追加查询结果。这样就会出现重复的记录或内容。因此,当需要多次查询时,每次查询前需要点击“清空文件”按钮删除output文件夹,才能保证查找的准确。 5、本程序不会判断运行的环境,因此在运行过程中可能会有些未知的错误 本程序在win7环境,vs2012,Netframe4.0下编译通过。本程序支持winxp及以上操作系统。执行EXCEL导入的时候,需要安装Office。Office的版本在2003以上就可以。但是不同我Office版本对导入性能,有一定的影响。Excel2003,最多256列,即2的8次方,最多65536行,即2放入16次方; Excel2007及以上版本,最多16384列,即2的14次方,最多1048576行,即2的20次方。因此如果需要导入的单个文件的行数或者列数,超过了所安装Office版本的最多行列数,程序将会报错!
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,533

社区成员

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

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

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