问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Visual Studio 2010 C#,winform,...7

发布网友 发布时间:2024-03-24 00:28

我来回答

3个回答

热心网友 时间:2024-10-12 17:11

//需要Using的命名
using Microsoft.Office.Interop.Excel;
using System.IO;
using System.Reflection;

------------------------------------------------------
////需要使用的变数。Workbook表示Excel档,Worksheet表示一个Excel档里面的sheet(一个Excel档可以有很多sheet),Range表示Excel里面单元格的范围。
Microsoft.Office.Interop.Excel.Application xlApp = null;
Workbook wb = null;
Worksheet ws = null;
Range aRange = null;
Range aRange2 = null;
object mObj_opt = System.Reflection.Missing.Value;
--------------------------------------------------------
private void WriteXls()
{
Console.WriteLine("WriteXls");
//启动Excel应用程式
xlApp = new Microsoft.Office.Interop.Excel.Application();

if (xlApp == null)
{
Console.WriteLine("Error! xlApp");
return;
}
//用Excel应用程式建立一个Excel物件,也就是Workbook。并取得Workbook中的第一个sheet。这就是我们要操作资料的地方。
wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
ws = (Worksheet)wb.Worksheets[1];
if (ws == null)
{
Console.WriteLine("Error! ws");
}
//要在Excel储存资料,有三种方式,以下分别介绍。利用Range物件,设定要储存资料的储存格范围。
// Select the Excel cells, in the range c1 to c7 in the worksheet.
Range aRange = ws.get_Range("C1", "C7");
if (aRange == null)
{
Console.WriteLine("Could not get a range. Check to be sure you have the correct versions of the office DLLs.");
}
// Fill the cells in the C1 to C7 range of the worksheet with the number 6.
Object[] args = new Object[1];
args[0] = 6;
aRange.Value2 = args;
//衍生自上面方法,但是在储存资料的时候,可以用InvokeMember呼叫aRange的资料成员(成员函式?)。
//aRange.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, aRange, args);
//利用Cells属性,取得单一储存格,并进行操作。
string[] number = { "A", "B", "C", "D", "E" };
foreach (string s in number)
{
Range aRange2 = (Range)ws.Cells["1", s];
Object[] args2 = new Object[1];
args2[0] = s;
aRange2.Value2 = args2;
}

//最後,呼叫SaveAs function储存这个Excel物件到硬碟。
wb.SaveAs(@"C:\test.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet, mObj_opt, mObj_opt, mObj_opt, mObj_opt, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, mObj_opt, mObj_opt, mObj_opt, mObj_opt, mObj_opt);

Console.WriteLine("save");
wb.Close(false, mObj_opt, mObj_opt);
xlApp.Workbooks.Close();
xlApp.Quit();
//删除 Windows工作管理员中的Excel.exe 进程,
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);
System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
System.Runtime.InteropServices.Marshal.ReleaseComObject(aRange2);
System.Runtime.InteropServices.Marshal.ReleaseComObject(aRange3);
xlApp = null;
wb = null;
ws = null;
aRange2 = null;
aRange3 = null;
//呼叫垃圾回收
GC.Collect();
}

热心网友 时间:2024-10-12 17:10

using Microsoft.Office.Interop.Excel;

//将当前显示的数据导入EXCL表格中
public bool ExportDataGridview(DataGridView gridView)
{
if (gridView.Rows.Count == 0)
return false;
//建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);
//生成字段名称
for (int i = 0; i < gridView.ColumnCount; i++)
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
} //填充数据
for (int i = 0; i < gridView.RowCount - 1; i++)
{
for (int j = 0; j < gridView.ColumnCount; j++)
{
if (gridView[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" +
gridView[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] =
gridView[j, i].Value.ToString();
}
}
}
excel.Visible = true;
return true;
}
用的时候直接调用就好了

热心网友 时间:2024-10-12 17:08

要那么麻烦吗?
先写个通用的方法
// 定义导出Excel的函数
private void Export(string FileType, string FileName)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
HtmlForm form = new HtmlForm();
GrvRuleDetail.EnableViewState = false;
page.EnableEventValidation = false;
page.DesignerInitialize();
page.Controls.Add(form);
form.Controls.Add(GrvRuleDetail);
page.RenderControl(htw);
Response.Clear();
Response.Buffer = true;
Response.ContentType = FileType;
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();
}
然后使用:
//导出数据
protected void bthExport_Click(object sender, EventArgs e)
{
if (this.dropExport.SelectedValue.Equals("Word"))
{
Export("application/ms-word", "数据.doc");
}
else
{
Export("application/ms-excel", "数据.xls");
}
}
引用就
using System.IO;
using System.Text;
using System.Data;
using System.Text.RegularExpressions;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你见过最古老的东西是什么,有多少年历史 WORD中怎么输出稿纸模式word中怎么输出稿纸模式 女性尿检阴性是什么意思 阴性尿检是什么意思 尿检阴性是什么 win10如何查看电脑配置参数 win10怎样查看电脑配置参数 多地对公职人员提接种要求 亚马逊订单可以退回任何Kohl's商店,7月份生效 亚马逊提供免费退货,珠宝退货卖家要承担运费吗 新的亚马逊退货政策惹争议!官方解答来了 怎么做到安全监护人 苏州大学化学全国排位 股市暴跌对债券基金有什么影响?4 全球经济大萧条对债券基金有何影响? 国外动荡对国内的基金有没有影响? 俄罗斯和乌克兰冲突升级,什么基金会受到波动?? 战争对基金有什么影响14 打仗跟基金有关系吗? 被停用怎么恢复? 三瓶易拉罐啤酒属于酒驾还是醉驾 被封了,怎样找回? 老是自言自语是精神病吗京科脑康在哪儿. 你好!精神病会自言自语吗 用QQ音乐如何下载mp3? 如果一个人叫你水平有待提高 该怎么回复 笑里藏猪类型的梗 我在花呗上充话费为啥银行卡上扣了2.88元? 为什么我没装花呗,它却能自动扣款14 花呗给我打电话,说叫月底把花呗给了怎么,我下个月才发工资,有...1 我在花呗上被骗了10697.显示的是你们公司的,怎么退还给我... 在VS2010中 用C#怎么把dataGridView中修改... VS2010 C# dataGridView中的数据以二维数... 请问在C#中该如何将datagridview中的数据生成vs... 如何在C#中 双击datagridview1中的一行数据,添...13 vs2010c#中datagridview和button控件... supposeif区别 If条件句中虚拟语气和主将从现的区别!两者好想像差不多! 西楚霸业手游礼包 借呗还款日当天12点之前,误点了主动还款,已经还款成功,到了...4 通过VS2008 怎样把一张EXCEL表格处理后 生成一个新... 春节前放假工厂领导演讲稿演讲大全 怎么用visual studio2013打开visual s... visual studio中打开一个EXCEL设置为不可保存 ...图形如下,方波能出来,LM324放大不行,而且正弦波锯齿波三角波没有... ...著名的游历之旅,这成为了《西游记》的基础,英文怎么译? ...站立上班,后脚掌老是有一种又痛又痒的感觉,要如何是好? 某工业企业产品年生产量为20万件,期末库存5.3万件,它们()。 A.是时... 那里有never say goodbuy baby vox的版本下载 CAD制图中标注大于等于符号如何标注?10 小卡尔斯岛中大公羊说的一句话