22,209
社区成员
发帖
与我相关
我的任务
分享
//new一个Excel程序对象
Microsoft.Office.Interop.Excel.Application Application = new Microsoft.Office.Interop.Excel.Application();
//创建一个Workbooks工作簿集合对象
Microsoft.Office.Interop.Excel.Workbooks workbooks = Application.Workbooks;
//创建一个工作簿Workbook
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
//创建一个Worksheet工作表
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
Version = Application.Version;//获取你使用的excel 的版本号
if (Convert.ToDouble(Version) < 12)//You use Excel 97-2003
{
//将保存Excel文件的格式设置为:-4143
FormatNum = -4143;
}
else//you use excel 2007 or later
{
//将保存Excel文件的格式设置为:56;
FormatNum = 56;
}
string[] cells ;//每行中的单元格数据字符串数组
//定义行号从第二行开始
int k = 2;
//设置第一行第一列单元格中的值为“*”
worksheet.Cells[1, 1] = "*";
FileStream fs = new FileStream( WorkPath + fi.Name, FileMode.Open );
StreamReader sr = new StreamReader(fs);
strLine = sr.ReadLine();
//如果文件流读出的行数据不为空时循环
while (strLine != null)
{
//将行数据按“\t”指标符分割成字符串数组存入cells数组
cells = strLine.Split('\t');
//循环cells数组
for (int j = 0; j <= cells.Length-2; j++ ){
//将cells数组中的元素按下标存入worksheet中的单元格内
worksheet.Cells[k, j+1] = cells[j];
}
//再将下一行数组读入strLine中
strLine = sr.ReadLine();
//将行数加1
k++;
}
sr.Close();
fs.Close();
//将worksheet加入到workbook中
workbook.Worksheets.Add(worksheet);
//将workbook以全路径为WorkPath+iBrokerFile,内容格式为FormatNum保存
workbook.SaveAs(String.Format(savePath + iBrokerFile, fi.Name.Substring(0,(int)fi.Name.Length - 4)), FormatNum);
//根据临时文件创建一个FileInfo
FileInfo cuInfo = new FileInfo(WorkPath + tmpFile);
//用FileInfo来删除临时文件
cuInfo.Delete();
//cuInfo = new FileInfo(WorkPath + deleteFile);
//cuInfo.Delete();
//要删除的worksheet工作表名称
string DeleteSheetNames = "Sheet2";
try
{
//循环工作表集合(数组?)
for (int i = 0; i < Application.Worksheets.Count; i++)
{
//如果有工作表名称==DeleteSheetName
if (DeleteSheetNames == ((Microsoft.Office.Interop.Excel.Worksheet)Application.Worksheets[i + 1]).Name)
{
//屏蔽程序运行过程中出现的各种警告
Application.DisplayAlerts = false; //注意一定要加上这句
((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[i + 1]).Delete();
//开启程序运行过程中出现的各种警告
Application.DisplayAlerts = true;//注意一定要加上这句
}
}
// 保存并关闭这个工作簿。
workbook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Missing.Value, Missing.Value);
//......
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
//将工作簿置空
workbook = null;
}
catch (System.Exception ex)
{
//将异常消息存入LastError中
string LastError = string.Format("WdCalcCode类\n," + ex.Message, "系统提示");
}
finally
{
//关闭Excel
Application.Quit();
//将Excel置空
Application = null;
//进行即时垃圾回收
GC.Collect();
}