仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 550|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:C#СExcel源a

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。excelC#СExcel办法有多No经常使用的依照Microsoft的办法以下:
1p"UseAutomationtoTransferDataCellbyCell"
2p"UseAutomationtoTransferanArrayofDatatoaRangeonaWorksheet"
3p"UseAutomationtoTransferanADORecordsettoaWorksheetRange"
4p"UseAutomationtoCreateaQueryTableonaWorksheet"
5p"UsetheClipboard"
6p"CreateaDelimitedTextFilethatExcelCanParseintoRowsandColumns"
7p"TransferDatatoaWorksheetUsingADO.NET"
在此自己次要利用第4N办法:即使用Excel的QueryTableС龊A
要使用Excel的QueryTable的办法o起首必要援用Excel。@我就未几f了。
第二步就是新增一窗w文件o楹纹鹨o只在窗w上加一button按o。在ButtonClick事务中到场操纵的代a。整操纵o我只在一中Fo源a附N以下(office2003)s
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceWindowsApplication3
{
publicpartialclassForm1:Form
{
privateMicrosoft.Office.Interop.Excel.Applicationm_objExcel=null;
privateMicrosoft.Office.Interop.Excel.Workbooksm_objBooks=null;
privateMicrosoft.Office.Interop.Excel._Workbookm_objBook=null;
privateMicrosoft.Office.Interop.Excel.Sheetsm_objSheets=null;
privateMicrosoft.Office.Interop.Excel._Worksheetm_objSheet=null;
privateMicrosoft.Office.Interop.Excel.Rangem_objRange=null;
//privateMicrosoft.Office.Interop.Excel.Fontm_objFont=null;
//privateMicrosoft.Office.Interop.Excel.QueryTablesm_objQryTables=null;
privateMicrosoft.Office.Interop.Excel._QueryTablem_objQryTable=null;
//Frequenty-usedvariableforoptionalarguments.
privateobjectm_objOpt=System.Reflection.Missing.Value;
//DataBase-usedvariable
privateSystem.Data.SqlClient.SqlConnectionsqlConn=null;
privatestringstrConnect="DataSource=192.168.168.253;Password=SHS;UserID=SHS;InitialCatalog=TEST_KM_ERP";
privateSystem.Data.SqlClient.SqlCommandsqlCmd=null;
//Sheetsvariable
privatedoubledbSheetSize=65535;//thehightlimitnumberinonesheet
privateintintSheetTotalSize=0;//totalrecordcandiviedsheetnumber
privatedoubledbTotalSize=0;//recordtotalnumber
publicForm1()
{
InitializeComponent();
}
privateintGetTotalSize()
{
sqlConn=newSystem.Data.SqlClient.SqlConnection(strConnect);
sqlCmd=newSystem.Data.SqlClient.SqlCommand("SelectCount(*)FromPD_WORKBIL_MST",sqlConn);
sqlConn.Open();
dbTotalSize=(int)sqlCmd.ExecuteScalar();
sqlConn.Close();
return(int)Math.Ceiling(dbTotalSize/this.dbSheetSize);
}
privatevoidDeclareExcelApp()
{
m_objExcel=newMicrosoft.Office.Interop.Excel.Application();
m_objBooks=(Microsoft.Office.Interop.Excel.Workbooks)m_objExcel.Workbooks;
m_objBook=(Microsoft.Office.Interop.Excel._Workbook)(m_objBooks.Add(m_objOpt));
m_objSheets=(Microsoft.Office.Interop.Excel.Sheets)m_objBook.Worksheets;
intSheetTotalSize=GetTotalSize();
if(intSheetTotalSize<=3)
{
if(this.dbTotalSize<=this.dbSheetSize)
{
this.ExportDataByQueryTable(1,false);
return;
}
elseif(this.dbTotalSize<=this.dbSheetSize*2)
{
this.ExportDataByQueryTable(1,false);
this.ExportDataByQueryTable(2,true);
return;
}
else
{
this.ExportDataByQueryTable(1,false);
this.ExportDataByQueryTable(2,true);
this.ExportDataByQueryTable(3,true);
return;
}
}
for(inti=3;i<intSheetTotalSize;i++)
{
m_objSheets.Add(m_objOpt,m_objSheets.get_Item(i),m_objOpt,m_objOpt);
}
ExportDataByQueryTable(1,false);
for(inti=2;i<=m_objSheets.Count;i++)
{
ExportDataByQueryTable(i,true);
}
}
privatevoidSaveExcelApp()
{
stringexcelFileName=string.Empty;
SaveFileDialogsf=newSaveFileDialog();
sf.Filter="*.xls|*.*";
if(sf.ShowDialog()==DialogResult.OK)
{
excelFileName=sf.FileName;
}
else
{
return;
}
m_objBook.SaveAs(excelFileName,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt);
}
privatevoidExportDataByQueryTable(intintSheetNumber,boolblIsMoreThan)
{
stringstrQuery=string.Empty;
if(blIsMoreThan)
{
strQuery="SelectTop"+
this.dbSheetSize+"*FromPD_WORKBIL_MSTWhereNotCMPIDIn(SelectTop"+
dbSheetSize*(intSheetNumber-1)+"CMPIDFromPD_WORKBIL_MST)";
}
else
{
strQuery="SelectTop"+this.dbSheetSize+"*FromPD_WORKBIL_MST";
}
m_objSheet=(Microsoft.Office.Interop.Excel._Worksheet)(m_objSheets.get_Item(intSheetNumber));
m_objSheet.get_Range("A1",m_objOpt).set_Value(m_objOpt,"中文y一");
m_objSheet.get_Range("B1",m_objOpt).set_Value(m_objOpt,"中文y二");
m_objSheet.get_Range("C1",m_objOpt).set_Value(m_objOpt,"中文y三");
m_objSheet.get_Range("D1",m_objOpt).set_Value(m_objOpt,"中文y四");
m_objSheet.get_Range("E1",m_objOpt).set_Value(m_objOpt,"中文y五");
m_objRange=m_objSheet.get_Range("A2",m_objOpt);
m_objQryTable=m_objSheet.QueryTables.Add("OLEDB;Provider=SQLOLEDB.1;"+strConnect,m_objRange,strQuery);
m_objQryTable.RefreshStyle=Microsoft.Office.Interop.Excel.XlCellInsertionMode.xlInsertEntireRows;
m_objQryTable.FieldNames=false;
m_objQryTable.Refresh(false);
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
DeclareExcelApp();
SaveExcelApp();
}
}
}
利用office2000的o仿佛有些分歧o榻o人人一比^o也⒃创a附N以下s
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceWindowsApplication2
{
publicpartialclassForm1:Form
{
Excel.Rangem_objRange=null;
Excel.Applicationm_objExcel=null;
Excel.Workbooksm_objBooks=null;
Excel._Workbookm_objBook=null;
Excel.Sheetsm_objSheets=null;
Excel._Worksheetm_objSheet=null;
Excel.QueryTablem_objQryTable=null;
objectm_objOpt=System.Reflection.Missing.Value;
//DataBase-usedvariable
privateSystem.Data.SqlClient.SqlConnectionsqlConn=null;
privatestringstrConnect="DataSource=192.168.168.253;Password=SHS;UserID=SHS;InitialCatalog=TEST_KM_ERP";
privateSystem.Data.SqlClient.SqlCommandsqlCmd=null;
//Sheetsvariable
privatedoubledbSheetSize=65535;//thehightlimitnumberinonesheet
privateintintSheetTotalSize=0;//totalrecordcandiviedsheetnumber
privatedoubledbTotalSize=0;//recordtotalnumber
publicForm1()
{
InitializeComponent();
}
privateintGetTotalSize()
{
sqlConn=newSystem.Data.SqlClient.SqlConnection(strConnect);
sqlCmd=newSystem.Data.SqlClient.SqlCommand("SelectCount(*)FromPD_WORKBIL_MST",sqlConn);
sqlConn.Open();
dbTotalSize=(int)sqlCmd.ExecuteScalar();
sqlConn.Close();
return(int)Math.Ceiling(dbTotalSize/this.dbSheetSize);
}
privatevoidDeclareExcelApp()
{
m_objExcel=newExcel.ApplicationClass();
m_objBooks=(Excel.Workbooks)m_objExcel.Workbooks;
m_objBook=(Excel._Workbook)(m_objBooks.Add(m_objOpt));
m_objSheets=(Excel.Sheets)m_objBook.Worksheets;
intSheetTotalSize=GetTotalSize();
if(intSheetTotalSize<=3)
{
if(this.dbTotalSize<=this.dbSheetSize)
{
this.ExportDataByQueryTable(1,false);
return;
}
elseif(this.dbTotalSize<=this.dbSheetSize*2)
{
this.ExportDataByQueryTable(1,false);
this.ExportDataByQueryTable(2,true);
return;
}
else
{
this.ExportDataByQueryTable(1,false);
this.ExportDataByQueryTable(2,true);
this.ExportDataByQueryTable(3,true);
return;
}
}
for(inti=3;i<intSheetTotalSize;i++)
{
m_objSheets.Add(m_objOpt,m_objSheets.get_Item(i),m_objOpt,m_objOpt);
}
ExportDataByQueryTable(1,false);
for(inti=2;i<=m_objSheets.Count;i++)
{
ExportDataByQueryTable(i,true);
}
}
privatevoidSaveExcelApp()
{
stringexcelFileName=string.Empty;
SaveFileDialogsf=newSaveFileDialog();
sf.Filter="*.xls|*.*";
if(sf.ShowDialog()==DialogResult.OK)
{
excelFileName=sf.FileName;
}
else
{
return;
}
m_objBook.SaveAs(excelFileName,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,
Excel.XlSaveAsAccessMode.xlNoChange,m_objOpt,m_objOpt,m_objOpt,m_objOpt);
}
privatevoidExportDataByQueryTable(intintSheetNumber,boolblIsMoreThan)
{
stringstrQuery=string.Empty;
if(blIsMoreThan)
{
strQuery="SelectTop"+
this.dbSheetSize+"*FromPD_WORKBIL_MSTWhereNotCMPIDIn(SelectTop"+
dbSheetSize*(intSheetNumber-1)+"CMPIDFromPD_WORKBIL_MST)";
}
else
{
strQuery="SelectTop"+this.dbSheetSize+"*FromPD_WORKBIL_MST";
}
m_objSheet=(Excel._Worksheet)(m_objSheets.get_Item(intSheetNumber));
m_objSheet.Cells[1,1]="中文y一";
m_objSheet.Cells[1,2]="中文y二";
m_objSheet.Cells[1,3]="中文y三";
m_objSheet.Cells[1,4]="中文y四";
m_objSheet.Cells[1,5]="中文y五";
m_objRange=m_objSheet.get_Range("A2",m_objOpt);
m_objQryTable=m_objSheet.QueryTables.Add("OLEDB;Provider=SQLOLEDB.1;"+strConnect,m_objRange,strQuery);
m_objQryTable.RefreshStyle=Excel.XlCellInsertionMode.xlInsertEntireRows;
m_objQryTable.FieldNames=false;
m_objQryTable.Refresh(false);
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
DeclareExcelApp();
SaveExcelApp();
}
}
}
在本篇中o是13f多l分多SheetС觥H绻愕C器也许像我@:P4CPU,1G却娴脑。全体С霭ū4嬉簿褪20秒摆布就能够全体弄定。
也S人人懈玫姆椒Fog迎列位交换u
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。
小魔女 该用户已被删除
沙发
发表于 2015-1-19 22:46:00 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
小妖女 该用户已被删除
板凳
发表于 2015-1-25 14:39:10 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-2 22:30:35 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
admin 该用户已被删除
5#
发表于 2015-2-25 19:27:20 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
乐观 该用户已被删除
6#
发表于 2015-3-8 01:41:26 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
若相依 该用户已被删除
7#
发表于 2015-3-15 19:22:05 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
只想知道 该用户已被删除
8#
发表于 2015-3-22 03:09:17 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
老尸 该用户已被删除
9#
发表于 2015-3-22 03:09:18 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-2-23 17:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表