try
{


Microsoft.Office.Interop.Excel.Application ThisApplication = new Microsoft.Office.Interop.Excel.Application();
var ThisWorkbook = ThisApplication.Workbooks.Open(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
ThisApplication.DisplayAlerts = false;
var xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)ThisWorkbook.Worksheets["sheet1"];

Microsoft.Office.Interop.Excel.Range range = xlSheet.get_Range("P1", Type.Missing);

Microsoft.Office.Interop.Excel.Range range1 = xlSheet.get_Range("C6", Type.Missing);
range.Copy(range1);

ThisWorkbook.Save();//.SaveAs(filePath, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,Type.Missing, Type.Missing, Type.Missing, Type.Missing);
ThisWorkbook.Close();

if (ThisWorkbook != null)
{
ThisWorkbook.Close(true, Type.Missing, Type.Missing);
ThisWorkbook = null;
}
if (ThisApplication != null)
{
ThisApplication.Quit();
KillSpecialExcel(ThisApplication);
ThisApplication = null;
}


}
catch(Exception ex)
{


}
finally
{

GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}

//IWorkbook workbook = null;// new HSSFWorkbook();// 创建一个Excel文件
//    ISheet sheet = null;// workbook.CreateSheet() as HSSFSheet;// 创建一个Excel的Sheet
//    //var a = new HSSFRichTextString("þ主要负责人");
//    IRichTextString a = null;
//    FileStream fs = null;
//    ICell cell = null;


//    using (fs = System.IO.File.OpenRead(filePath))
//    {
//        // 2007版本
//        if (filePath.IndexOf(".xlsx") > 0)
//        {
//            workbook = new XSSFWorkbook(fs);
//            a = new XSSFRichTextString("þ主要负责人");
//        }
//        // 2003版本
//        else if (filePath.IndexOf(".xls") > 0)
//        {
//            workbook = new HSSFWorkbook(fs);
//            a = new HSSFRichTextString("þ主要负责人");
//        }

//            if (workbook != null)
//        {
//            sheet = workbook.GetSheetAt(0);//读取第一个sheet,当然也可以循环读取每个sheet

//            if (sheet != null)
//            {
//                var font1 = (HSSFFont)sheet.Workbook.CreateFont();
//                font1.FontName = "Wingdings 2";
//                font1.FontHeightInPoints = 14;
//                a.ApplyFont(0, 1, font1);

//                cell = sheet.GetRow(1).GetCell(16);
//                Microsoft.Office.Interop.Excel.Range rang = sheet.get_Range("A1", "F7");

//                sheet.GetRow(5).GetCell(3).SetCellValue(a);
//                sheet.GetRow(5).GetCell(3).SetCellValue(a);

//                sheet.GetRow(6).GetCell(3).SetCellValue(cell.RichStringCellValue);
//                sheet.GetRow(7).GetCell(3).SetCellValue(cell.RichStringCellValue);

//                sheet.GetRow(8).GetCell(3).SetCellValue(cell.RichStringCellValue);

//                sheet.GetRow(9).GetCell(3).SetCellValue(cell.RichStringCellValue);
//            }
//        }
//    }

//    using (fs = System.IO.File.OpenWrite(filePath))
//    {
//        workbook.Write(fs);//向打开的这个xls文件中写入数据

//    }

}
#region DllImport Methods
[System.Runtime.InteropServices.DllImport("User32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
#endregion
public static void KillSpecialExcel(Microsoft.Office.Interop.Excel.Application m_objExcel)
{
try
{
if (m_objExcel != null)
{
int lpdwProcessId;
GetWindowThreadProcessId(new IntPtr(m_objExcel.Hwnd), out lpdwProcessId);
System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
}
}
catch (Exception)
{ }
}
public ActionResult Approve(string keyvalue)
{
var res = app.Approve(keyvalue);
if (res)
{
return Success("批准成功");
}
return Error("批准失败!请确认状态是否正确");
}
}
}

以下为进行研发EXCEL操作时进行的相关测试代码,记录如下。private void test(string filePath) { try { Microsoft.Office.Interop.Excel.Application ThisApplication = new Mic...
The interface is prepared for N POI 2.0 actually. In N POI 2.0, there are two namespace: XSSF and HSSF. XSSF is for xlsx, HSSF is for xls. Both implements interfaces in N POI .SS; N POI 有3种dll:①XSSF 操作 xlsx格式版本的 Excel ;②HSSF 操作 xls格式版本的 Excel ;③SS以上两种格式的 Excel 都可 操作 ; 下面的方式
string TempletFileName = @"D:\template.xls"; File.Copy(TempletFileName, targetPath, true); HSSFWorkbook wk = null; using (FileStream fs = File.Open(targetPath, FileMode.Open... 1.根据Visual Studio版本安装NuGet.Tools 网址:https://www.nuget.org/downloads 2.工具→NuGet包管理器→程序包管理器控制台 3.输入"Install-P
跨工作薄 复制 Sheet,并不是单纯的将Sheet的数据 复制 到新Sheet中,需要将数据、公式等包括数据格式(DataFormat), 单元格 的风格(CellStyle)等等都 复制 到新Sheet中。 N POI 目前的版本为2.5.1,其 Excel 处理已经可以较好的支持XSSF(2007及以上)与HSSF(2003及以下)各自的工作薄间的Sheet拷贝,但XSSF工作薄与HSSF工作薄间的Sheet拷贝仍未实现。而2.4.1版的HSSF的Sheet拷贝也并未完善,虽然大部分功能已实现,颜色上有异常,2.5.1版已
C# N POI 一、N POI 的引用二、 操作 Excel 1.创建新的 Excel 工作簿2.读取现有的 Excel 工作簿3. 操作 sheet工作表4. 操作 workbook工作簿5.跨workbook工作簿 复制 sheet工作表 编辑器:Visual Studio 语言: C# 一、N POI 的引用 1.根据Visual Studio版本安装NuGet.Tools 网址:https://www.nuget.org/downloads 2.工具→NuGet包管理器→程序包管理器控制台 3.输入"Install-Package N
N POI 已经发布到了2.0的版本,可喜的是该版本支持到了 Excel 2007,但缺憾的是没有 复制 SHEET表的功能,只有一个CloneSheet方法,确实没明白怎么使用。所以在网上搜索了一下,只找一个JAVA的版本,好像也是自己写的代码实现的。于是拿过来翻译了一下, 复制 SHEET后的格式基本没变,但 单元格 的宽度没有实现,ICell接口没有类似于Width的属性,只好作罢。 哪位如果知道CloneS