批量编辑Excel x64Word下载.docx
《批量编辑Excel x64Word下载.docx》由会员分享,可在线阅读,更多相关《批量编辑Excel x64Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
summary>
Date:
2010.03.31
Author:
Mr.Brooks
HomePage:
Email:
undead_47@
/summary>
class
将一个工作簿中一个工作表中的内容复制到另一个工作簿的一个工作表中
param
name="
v_strSourceWorkbook"
>
源工作薄的完整路径<
/param>
v_strSourceWorksheet"
源工作表名<
v_strDestWorkbook"
目标工作薄的完整路径<
v_strDestWorksheet"
目的工作表名<
private
static
void
fnCopy(string
v_strSourceWorkbook,
string
v_strSourceWorksheet,
v_strDestWorkbook,
v_strDestWorksheet)
Application
app
=
new
Application();
Workbook
srcbook
app.Workbooks.Open(v_strSourceWorkbook);
Worksheet
srcsheet
srcbook.Worksheets[v_strSourceWorksheet];
destbook
app.Workbooks.Open(v_strDestWorkbook);
destsheet
destbook.Worksheets[v_strDestWorksheet];
try
//Worksheet.UsedRange:
获取工作表中所使用的范围
for
(int
i
1;
srcsheet.UsedRange.Rows.Count;
i++)
j
srcsheet.UsedRange.Columns.Count;
j++)
//将Excel的颜色与RGB联系起来
if
(srcsheet.Cells[i,
j].Interior.Color
!
ColorTranslator.ToOle(Color.FromArgb(255,
204,
153)))
destsheet.Cells[i,
j].Value2
srcsheet.Cells[i,
j].Value2;
}
//屏蔽Excel的提示信息
app.Application.DisplayAlerts
false;
destbook.Save();
catch
(Exception
ex)
throw
ex;
finally
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
System.Runtime.InteropServices.Marshal.ReleaseComObject(srcbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(srcsheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(destbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(destsheet);
null;
GC.Collect();
Range.Interior.Color是Office中表示颜色的方法,其返回一个整数,表示一种特定的颜色:
但是我们平时用的最多的是RGB表示的颜色,可以用
153))
将ColorIndex与RGB进行关联。
判断一个工作簿的一个工作表有没有添加保护
v_strDir"
工作簿的完整路径<
v_strSheetName"
工作表名<
fn判断工作表是否被保护(string
v_strDir,
v_strSheetName)
StringBuilder
sb
StringBuilder();
DirectoryInfo
dir
DirectoryInfo(v_strDir);
//递归查找所有Excel
2007/2010的文件
foreach
(FileInfo
f
in
dir.GetFiles("
*.xlsx"
SearchOption.AllDirectories))
book
app.Workbooks.Open(f.FullName);
(book.Worksheets[v_strSheetName].ProtectContents)
sb.Append(book.Name
+
"
"
);
book.Save();
finally
Console.WriteLine(sb.ToString());
若不知道Excel工作簿或工作表的密码,可以用Passware进行破解,经过测试,Passware可以破解Office2003/2007/2010,其官方主页称可以破解Windows7的BitLocker加密技术。
判断一个工作表中所有的单元格是否包含公式
v_strPath"
fn判断单元格是否包含公式(string
v_strPath)
DirectoryInfo(v_strPath);
file
app.Workbooks.Open(file.FullName);
(Worksheet
sheet
book.Worksheets)
sheet.UsedRange.Rows.Count;
sheet.UsedRange.Columns.Count;
(sheet.Cells[i,
j].HasFormula)
sheet.Name
第"
i.ToString()
行第"
j.ToString()
列包含公式!
\n"
获取指定工作簿的所有工作表
fn获取指定工作簿的所有工作表(string
v_strDir)
sb.Append(book.Name);
sb.Append(sheet.Name
sb.Append("
批量转换Excel的格式
批量转换Excel
2003
至Excel
2007/2010格式
可以修改XlFileFormat枚举的值来转换为想要的格式
工作簿的查找路径<
fn批量转换Excel文件格式(string
book;
fi
*.xls"
app.Workbooks.Open(fi.FullName);
book.SaveAs(fi.DirectoryName
@"
\"
fi.Name.Replace(fi.Extension,
string.Empty)
.xlsx"
XlFileFormat.xlOpenXMLWorkbook);
比较两个工作表的内容
v_strSourcePath"
第一个工作簿的路径<
v_strDestPath"
第二个工作簿的路径<
fn比较两个工作表的内容(string
v_strSourcePath,
v_strDestPath)
srcBook
app.Workbooks.Open(v_strSourcePath);
destBook
app.Workbooks.Open(v_strDestPath);
//记录查找结果到本文文件中
FileStream
fs
FileStream("
log.txt"
FileMode.OpenOrCreate,
FileAccess.ReadWrite);
StreamWriter
sw
StreamWriter(fs);
srcBook.Worksheets)