在ASP.NET中,求DataTable导出excel的源码!!

在ASP.NET中,求DataTable导出excel的源码!!,第1张

与其写这么多~~~还不如直接利用NET自带的microsoft reportviewer 还好啦!不仅支持EXCEL格式导出,连PDF都可以!!

只需设计好格式,然后把你想要的数据填充到里面就OK了!!

有不懂的可以HI我一下!

ReportViewer是微软报表解决方案的前台展示控件,目前嵌入在VS2005/VS2008/VS2010/VS2012中。它的优势主要有以下几点:

免费-微软自带的免费报表控件,不存在任何版权或者限制

简单-ReportViewer适合轻量的报表,开发相对简单

所见即所得-你只要在报表中设定好格式,打印出来是跟你看到的报表一样的

查看/打印-ReportViewer报表浏览器集成了报表查看及打印预览功能,可直接输出到打印机,也可直接输出为Excel文件或PDF文件,对于习惯Excel表格的人来说,ReportViewer报表控件非常适合

双平台-既可以在Web程序中使用,也可以在Windows程序中使用

希望对你有帮助

将小票打印机设置成默认的打印机,然后用Stream 流,下面连接的就是小票打印机打印rdlc报表,完全可以使用,你可以自己改改用调用的是PPrint()就行

#region 报表自打印

public void PPrint()

{

try

{

LocalReport report = thisreportViewer1LocalReport;

Export(report);

m_currentPageIndex = 0;

NBPrint();

if (m_streams != null)

{

foreach (Stream stream in m_streams)

streamClose();

m_streams = null;

}

}

catch (Exception ex)

{

MessageBoxShow("在打印过程中出现异常! " + exMessageToString());

}

}

private void Export(LocalReport report)

{

//75in 366in 0 0 0 0 当前设置为A4纵向

string deviceInfo =

"<DeviceInfo>" +

" <OutputFormat>EMF</OutputFormat>" +

" <PageWidth>721mm</PageWidth>" +

" <PageHeight>250mm</PageHeight>" +

" <MarginTop>0in</MarginTop>" +

" <MarginLeft>0in</MarginLeft>" +

" <MarginRight>0in</MarginRight>" +

" <MarginBottom>0in</MarginBottom>" +

"</DeviceInfo>";

Warning[] warnings;

m_streams = new List<Stream>();

reportRender("Image", deviceInfo, CreateStream, out warnings);

foreach (Stream stream in m_streams)

{

streamPosition = 0;

return;

}

}

private void NBPrint()

{

if (m_streams == null || m_streamsCount == 0)

return;

PrintDocument printDoc = new PrintDocument();

if (!printDocPrinterSettingsIsValid)

{

string msg = StringFormat("Can't find printer \"{0}\"", "默认打印机!");

MessageBoxShow(msg, "找不到默认打印机");

return;

}

printDocPrintPage += new PrintPageEventHandler(PrintPage);

printDocPrint();

thisClose();

}

private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)

{

string filenameext = DateTimeNowYearToString() + DateTimeNowDayToString() + DateTimeNowMonthToString() + DateTimeNowHourToString() + DateTimeNowMinuteToString() + DateTimeNowSecondToString();

Stream stream = new FileStream(name + "" + fileNameExtension, FileModeCreate);

m_streamsAdd(stream);

if (m_streamsCount > 1)

{

m_streamsRemoveAt((int)1);

}

return stream;

}

private void PrintPage(object sender, PrintPageEventArgs ev)

{

Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]);

evGraphicsDrawImage(pageImage, evPageBounds);

m_currentPageIndex++;

evHasMorePages = (m_currentPageIndex < m_streamsCount);

}

#endregion

没试过封装DLL。

提供其他的方式:rdlc文件属性,生成 *** 作:嵌入的资源。

VBNET的一个示例代码:

MereportviewerReset()

'这个是相对路径调用的方法MereportviewerLocalReportReportPath

=

ApplicationStartupPath

&

"\Reports\报表名rdlc"

'增加报表数据源

MereportviewerLocalReportDataSourcesAdd(New

ReportDataSource("DataSet_IntMater",

DataSetIntMaterComplain))

'使用嵌入的资源方式调用报表

MereportviewerLocalReportReportEmbeddedResource

=

"项目名报表名rdlc"

MereportviewerLocalReportDisplayName

=

"报表"

MereportviewerRefreshReport()

以上就是关于在ASP.NET中,求DataTable导出excel的源码!!全部的内容,包括:在ASP.NET中,求DataTable导出excel的源码!!、ReportViewer报表怎么样、c#做小票打印机的应用程序,不知道安装了驱动,用的时usb001端口,不知道怎么连接,求大神帮助。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10089656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存