.net 水晶报表。现在已经有DataSet数据源了,现在想要把DataSet导成xls文件。

你现在是要把报表导出吗?还是把DataSet导出?
报表导出的话。
saveFileDialog1.Filter = "Execl2003 files (*.xls)|*.xls|Word2003 files (*.doc)|*.doc|Execl2007 files (*.xlsx)|*.xlsx|Word2007 files (*.docx)|*.docx|PDF files (*.pdf)|*.pdf";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.CreatePrompt = true;
saveFileDialog1.Title = "Export files to...";
DateTime now = DateTime.Now;
saveFileDialog1.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0');
saveFileDialog1.ShowDialog();

if (saveFileDialog1.FileName != "")
{
#region 导出为2003版本的Excel或Word
if (saveFileDialog1.FilterIndex == 1 || saveFileDialog1.FilterIndex == 2)
{
Stream myStream;
myStream = saveFileDialog1.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridView1.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridView1.Rows.Count - 1; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridView1.Columns.Count - 1; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
MessageBox.Show("文件已导出成功");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}
#endregion
#region 导出为2007版本的Excel
else if (saveFileDialog1.FilterIndex == 3)
{
Microsoft.Office.Interop.Excel.ApplicationClass MyExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
MyExcel.Visible = true;
if (MyExcel == null)
{
MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int rowcount = 0;
int columncount = 0;
MyExcel.Application.Workbooks.Add(true);
columncount = this.dataGridView1.ColumnCount - 1;
rowcount = this.dataGridView1.RowCount - 1;
for (int m = 0; m < columncount; m++)
{
MyExcel.Cells[1, m + 1] = this.dataGridView1.Columns[m].HeaderText;
}
for (int i = 0; i < rowcount; i++)
{
for (int j = 0; j < columncount; j++)
{
MyExcel.Cells[i + 2, j + 1] = this.dataGridView1[j, i].Value.ToString();
}
}
}
#endregion
#region 导出为2007版本的Word
else if (saveFileDialog1.FilterIndex == 4)
{
Stream myStream;
myStream = saveFileDialog1.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridView1.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridView1.Rows.Count - 1; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridView1.Columns.Count - 1; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
MessageBox.Show("文件已导出成功");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}
#endregion
#region 导出为PDF
else if (saveFileDialog1.FilterIndex == 5)
{
//设置导出字体
string FontPath = "C:\\WINDOWS\\Fonts\\simsun.ttc,1";
int FontSize = 12;

Boolean cc = false;
string strFileName;

strFileName = saveFileDialog1.FileName;

//初始化一个目标文档类
//Document document = new Document();
//竖排模式,大小为A4,四周边距均为25
iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.A4, 25, 25, 25, 25);
//横排模式,大小为A4,四周边距均为50
//Document doc = new Document(PageSize.A4.rotate(),50,50,50,50);

//调用PDF的写入方法流
//注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create));

//创建PDF文档中的字体
BaseFont baseFont = BaseFont.CreateFont(
FontPath,
BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED);

//根据字体路径和字体大小属性创建字体
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, FontSize);

//打开目标文档对象
document.Open();

//根据数据表内容创建一个PDF格式的表
PdfPTable table = new PdfPTable(dataGridView1.Columns.Count - 1);

for (int j = 0; j < dataGridView1.ColumnCount - 1; j++)
{
table.AddCell(new Phrase(dataGridView1.Columns[j].HeaderText, font));
}
//// 告诉程序这行是表头,这样页数大于1时程序会自动为你加上表头。
table.HeaderRows = 1;

//添加数据
//设置表体背景色
//遍历原gridview的数据行
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count - 1; j++)
{
try
{
table.AddCell(new Phrase(dataGridView1[j, i].Value.ToString(), font));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
cc = true;
}
}
}
//在目标文档中添加转化后的表数据
document.Add(table);
//关闭目标文件
document.Close();
//关闭写入流
writer.Close();
// Dialog
if (!cc)
{
MessageBox.Show("文件已导出成功!", "生成成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
#endregion
}
else
{
MessageBox.Show("文件名不能为空!");
}
别忘记了上面

using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Word;
要是是dataset 导出的话。
INSERT INTO OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0',

'Excel 5.0;DATABASE=c:\03-20.xls' )...[Sheet1$]
SELECT * FROM [1120].[dbo].[zwh_House_WEBDB] where
datediff(d,getOn,getdate())=0

用MSchart 控件绑定你的dataset。。然后会生成一张图片,找到这个路径 然后导出到xls 。不行吗

水晶报表怎么显示查询条件 - …… 1、如果你的报表已经(生成页面)成型的情况下,再把条件放在表头,这个没有人做得到2、如果你的报表还没有成型,那么你就把两个参数字段 直接托到 表头即可,然后格式化该参数字段设置日期...

打印水晶报表为什么老是提示参数已经定义 - …… 或许是你的报表打印时直接默认了打印机,导致你的参数已经定义.如果是默认打印机的话,就把report.PrintOptions.PrinterName="";这行去掉,直接PrintToPrinter应该就行了.我用的是finereport,感觉打印什么的都没有出过bug,个人感觉更适合做中国式的复杂报表,网上有免费版的,楼主可以百度看看,希望可以帮到你

.net 2005 中水晶报表如何使用 - …… .net中的WinForm和WebForm都可以使用水晶报表.当然Winform的要强大一些.添加水晶报表和添加Web页面是一样的,都是在添加那个窗口选的.我用过在WebForm中用水晶报表要添加一个数据集文件(也即是DataSet).具体详细操作可以到微软msdn.microsoft.com下载视频讲座,是邵志东演讲的,有这么一个视频

ASP.NET中水晶报表怎么用?请教,最好附例子 - …… 如果你正在使用vs.net开发.net程序,那么你就不需要再安装其它软件了,因为他已经内嵌在vs.net中了.执行模式 水晶报表取数据可以使用下面的方法实现: pull 模式: 被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据. ...

如何在.NetWeb应用中使用水晶报表 - …… 1、从WebForm工具栏中拖动水晶报表查看器控件至.aspx页面中.2、调用水晶报表查看器控件的属性窗口.3、点击[...]按钮查看Data Binding属性,并弹出了Data Binding窗口.4、从左边的Bindable属性区中选择Report Source.5、选中自定义绑定表达式单元按钮,在右边的底部的窗口中指定.rpt文件的文件名和路径.6、在Page_Load方法中调用DataBind方法.7、保存并编译页面.这样的话就差不多可以了.感觉水晶报表部署服务器还是有点小麻烦的,我在用finereport的时候直接可以在很多服务器上进行部署.

.net 做报表程序代码一共有哪几种方式? - …… 水晶报表rpt、Report+、GridReport、微软报表rldc、VB DataReport、PrintDecument、VB PrintForm ActiveX....水晶报表rpt、微软报表rldc、VB DataReport已经过时,操作比较死板.Report+、GridReport第三方控件,移植性差.PrintDecument、VB PrintForm ActiveX为首选,但是比前者使用要复杂.应该来讲用.NET还是建议使用PrintDecument来自定义打印和设计模式.微软提供的三种打印控件都十分差劲,一般人不会去用,太丑

在VB.NET,用到了水晶报表. - …… 如果是FineReport报表,有两种方法,一种是需要将数据源放在你们本地或网络的服务器上,这样换一台机器数据源也不会出问题;另一种就是打包时将所用数据也一并打包,了.楼主可以试一下水晶报表,应该是一个原理.

水晶报表是什么?怎么搞java和net的都会碰到这个东西的? …… 水晶报表,是一套非常强大的报表系统,连微软都在自己的开发环境中整合了它. 这样的解决方案,严格的说不管是JAVA或者.NET平台都要用. 他已经脱离了语言的界限...

水晶报表提示已经在非重复字段上指定了汇总什么意思 - …… 所谓的重复字段就是你的报表详情中的那些字段,汇总是针对详情中的数据进行汇总,你看下你设定汇总字段的时候有没有错误

asp.net的水晶报表,上传到服务器之后,执行查询的第一张报表信息看不见,翻页之后可以看到第二页之后的? - …… asp.net采用了回传机制,上传后记得客户端刷新,否则你是看不到第一张报表的,等你翻页后,会有自动回传机制,所以你就看到第二页了,建议你查查程序.

相关推荐

  • wincc开发net控件
  • 水晶球价格图片大全
  • 水晶球价格一般在多少
  • c#水晶报表
  • 水晶高跟鞋 11岁
  • 晶报电子版
  • 水晶报表软件下载
  • 一个水晶球多少元
  • 水晶矿场app 7.0
  • 月经前几天有褐色的血又不像月经
  • 水晶小白出租屋带什么套
  • 晶报 上海
  • 彩虹小孩觉醒很痛苦
  • 来完月经后又有非常少量的出血
  • 本文由网友投稿,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
    若有什么问题请联系我们
    2024© 客安网