请教一个问题:如何将一个excel文件按照sheet,拆分保存为多个excel文件?比如:excel文件里有3个sheet分别为:sheet1,sheet2,sheet3。如何将这个excel文件拆分,保存为3个excel文件?
解决方案 »
- 关于web.cofig中对于加了密的字符串 我应该怎样在DAO层来取?
- 本地数据库,采用Windows Authentication方式的sqlconnection语句
- 图片二进制流的方式存入数据库,插入的总是空数据,请高手帮帮我啊~~ 急,在线等
- 一个Web传值问题!!!!!
- 求助:基于.net,salt,实现模拟语音操作系统--方法,资料...重谢!!周四前~~~急
- ASP中的SESSION数据ASP.NET如何接受?
- 讨论:网站能够承受多少用户访问?这个测试结果我看不懂。
- Crystal Report 10 专业版 无法进行Web 打印???
- 请问:关于DataGrid绑定数值的问题。
- 请问如何将.cs文件中的数组传递到页面里面去
- 简单的问题
- 动态生成控件,每行生成规定的控件
不过我可以用鼠标+键盘实现这个效果...
DataTable dtExcelSchema = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string SheetName = ""; SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();//表名一般是三个
表名都找到了,下面就继续你要的,分别对表操作
先找到sheet,然后按sheet找表内的内容
Microsoft.Office.Interop.Excel.ApplicationClass app = new Microsoft.Office.Interop.Excel.ApplicationClass();
app.DisplayInfoWindow = false;
app.DisplayAlerts = false; Microsoft.Office.Interop.Excel.Workbook book = null; book = app.Workbooks.Open("原文件路径", 0, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); for (int i = 0; i < book.Sheets.Count; i++)
{
Microsoft.Office.Interop.Excel.Worksheet wsh = (Microsoft.Office.Interop.Excel.Worksheet)book.Worksheets[i + 1]; Microsoft.Office.Interop.Excel.Workbook bookNew = null;
bookNew = app.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet sheetNew = null; sheetNew = (Microsoft.Office.Interop.Excel.Worksheet)bookNew.Sheets.Add(Missing.Value, Missing.Value, 1, Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
//下面代码为去除生成新文件里多余的Sheet
if (!wsh.Name.Contains("Sheet"))
{
sheetNew = wsh;
sheetNew.Copy(bookNew.Sheets["Sheet1"], Missing.Value);
sheetNew.Name = System.IO.Path.GetFileName(wsh.Name);
int num = bookNew.Sheets.Count;
for (int j = 0; j < num; j++)
{
//获取Excel表中的sheet表
Microsoft.Office.Interop.Excel.Worksheet wsh2 = (Microsoft.Office.Interop.Excel.Worksheet)bookNew.Worksheets[j + 1];
if (wsh2.Name.Contains("Sheet"))
{
//删除已存在的空sheet表
wsh2.Delete();
num--;
j--;
}
} } app.CutCopyMode = Microsoft.Office.Interop.Excel.XlCutCopyMode.xlCopy;
bookNew.SaveAs("路径"+wsh.Name + ".xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlTemplate, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); }
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject((object)app);
GC.Collect();
打开EXCEL文件,并新建空白EXCEL文件,然后,人工拷贝黏贴下,之后看看宏代码是怎么写的。
最后根据宏代码写程序