您的位置:首页 > 其它

将Excel应用于报表开发中(一)--开始

2007-11-20 21:39 344 查看
[align=left]下面是一个简单的例子,打开一个定义好的Excel文件,这个文件是作为报表的模板,然后向模板的指定格子里填充数据,形成一个报表,在web方式下可以按照指定的命名方式在服务器上生成一个excel文件,之后传送到客户端,由客户端启动excel进行打印。[/align]
[align=left] [/align]
[align=left]Excel.Application m_objExcel = null;[/align]
[align=left]Excel._Workbook m_objBook = null;[/align]
[align=left]Excel.Sheets m_objSheets = null;[/align]
[align=left]Excel._Worksheet m_objSheet = null;[/align]
[align=left]Excel.Range m_objRange = null;[/align]
[align=left] [/align]
[align=left]object m_objOpt = System.Reflection.Missing.Value;[/align]
[align=left]try[/align]
[align=left]{[/align]
[align=left] m_objExcel = new Excel.Application();[/align]
[align=left]m_objBook = m_objExcel.Workbooks.Open("z://Book1.xls", m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);[/align]
[align=left] [/align]
[align=left] m_objSheets = (Excel.Sheets)m_objBook.Worksheets;[/align]
[align=left] m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] string[] info = new string[5] { "Cure", "26", "dahuzizyd.cnblogs.com", "汉", "按时 ?放奥斯丁奥斯丁非是否奥斯丁非" };[/align]
[align=left] m_objRange = m_objSheet.get_Range("B1", m_objOpt);[/align]
[align=left] m_objRange.Value = info[0];[/align]
[align=left] m_objRange = m_objSheet.get_Range("E1", m_objOpt);[/align]
[align=left] m_objRange.Value = info[1];[/align]
[align=left] m_objRange = m_objSheet.get_Range("B2", m_objOpt);[/align]
[align=left] m_objRange.Value = info[2];[/align]
[align=left] m_objRange = m_objSheet.get_Range("E2", m_objOpt);[/align]
[align=left] m_objRange.Value = info[3];[/align]
[align=left] m_objRange = m_objSheet.get_Range("A3", m_objOpt);[/align]
[align=left] m_objRange.Value = info[4];[/align]
[align=left] [/align]
[align=left] m_objExcel.DisplayAlerts = false;[/align]
[align=left] [/align]
[align=left] m_objBook.SaveAs("z://Book2.xls", m_objOpt, m_objOpt,[/align]
[align=left] m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,[/align]
[align=left] m_objOpt, m_objOpt, m_objOpt, m_objOpt);[/align]
[align=left] [/align]
[align=left]}[/align]
[align=left]catch (Exception ex)[/align]
[align=left]{[/align]
[align=left] MessageBox.Show(ex.Message);[/align]
[align=left]}[/align]
[align=left]finally[/align]
[align=left]{[/align]
[align=left] m_objBook.Close(m_objOpt, m_objOpt, m_objOpt);[/align]
[align=left] m_objExcel.Workbooks.Close();[/align]
[align=left] m_objExcel.Quit();[/align]
[align=left] System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objBook);[/align]
[align=left] System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcel);[/align]
[align=left] m_objBook = null;[/align]
[align=left] m_objExcel = null;[/align]
[align=left] GC.Collect();[/align]
}

可以看到,使用Excel要进行一部分的编码,好在这部分还不太复杂,但是最大的问题就在于当报表需求变更时,要重新编译部署,而且当格子特别多的时候,要这样硬编码还是挺痛苦的一件事。不过使用Excel毕竟给我们提供了一种选择,可以在开发时对多种方案权衡利弊,使用最适合项目的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: