C#程序如何调用 vsto Excel工作簿程序

糖牙 2009-12-01 11:12:33
新建了一个Excel 工作簿程序, C# 如何调用这个 excel程序
我现在建了一个Excel工作簿的程序,接收前台传过来的DataTable, 能够将DataTable数据显示在Excel里面, 怎么样返回这个Excel 到前台。。
或者说 我应该建哪种程序 Excel模板,Excel外接程序…… 能直接让前台调用,接受前台参数然后返回一个Excel表格给前台。
...全文
674 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
糖牙 2010-05-29
  • 打赏
  • 举报
回复
没解决。。。唉,不整了
hwhone 2009-12-03
  • 打赏
  • 举报
回复
//声明变量
Excel.Application objApp;
Excel._Workbook objBook;
//定义路径
//
//wpf中路径的设定
public string Excelpath = AppDomain.CurrentDomain.BaseDirectory + "info.xls";
/// <summary>
/// 执行将数值输入到excel表并进行打印
/// </summary>
public void OpenExcel()
{
//创建Excel控件对象
Excel.Workbooks objBooks;
Excel.Sheets objSheets;
Excel._Worksheet objSheet;
Excel.Range range;
try
{
// Instantiate Excel and start a new workbook.
objApp = new Excel.Application();//启动程序
objBooks = objApp.Workbooks;
//启动工作模板


objBook = objBooks.Add(Excelpath);
objSheets = objBook.Worksheets;
objSheet = (Excel._Worksheet)objSheets.get_Item(1);
#region 将数值导出Excel表
//
//姓名
range = objSheet.get_Range("A2", "A2");
range.Value2 = this.textBox1.Text; //+ " 号";
//
//年龄
range = objSheet.get_Range("B2", "B2");
range.Value2 = this.textBox2.Text;
//
objSheet.Cells[8, 7] = "123456";

# endregion
//将Excel保存
// objApp.Save(Excelpath);
//
//
//将excel显示出来
objApp.Visible = true;
objApp.UserControl = true;
//打印预览
//objSheet.PrintOut(1,1,1,false,false,true,1,false);
objSheet.PrintPreview(true);
//objSheet.
//隐藏Excel窗口
objApp.Visible = false;
}
catch (Exception theException)
{
String errorMessage;
errorMessage = "Error: ";
errorMessage = String.Concat(errorMessage, theException.Message);
errorMessage = String.Concat(errorMessage, " Line: ");
errorMessage = String.Concat(errorMessage, theException.Source);

MessageBox.Show(errorMessage, "Error");
}

}

private void button1_Click(object sender, RoutedEventArgs e)
{
#region 在wpf中启动excel表
//Excel.Workbooks objBooks;
//Excel.Sheets objSheets;
//Excel._Worksheet objSheet;
//Excel.Range range;


// // Instantiate Excel and start a new workbook.
// objApp = new Excel.Application();
// objBooks = objApp.Workbooks;
// objBook = objBooks.Add(Missing.Value);
// objSheets = objBook.Worksheets;
// objSheet = (Excel._Worksheet)objSheets.get_Item(1);

// //Get the range where the starting cell has the address
// //m_sStartingCell and its dimensions are m_iNumRows x m_iNumCols.
// range = objSheet.get_Range("A1", Missing.Value);
// range = range.get_Resize(5, 5);


// objApp.Visible = true;
// objApp.UserControl = true;
#endregion
//执行将数值输入到excel表并进行打印的方法
OpenExcel();
Jave.Lin 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qq453100229 的回复:]
(⊙o⊙)…。额。。不是,是C#程序调用vsto  我建了一个Asp.Net web应用程序和ExcelWorkbook程序
要实现Asp.Net web应用程序调用 ExcelWorkbook程序 我想知道如何调用
直接 Sheet1 sh=new Sheet()要传参,参数不知道怎么传
[/Quote]

VSTO 只对做Office 的插件程序。

别用他了。

改用其它的,Excel DLL,FpSpread,Npoi , 不推荐Excel DLL,很多时候要手动将工作簿清理才可以。

推荐:FpSpread,NPOI

FpSpread:FarPoint产品:
控件命名空间:
winForm:FarPoint.Win.Spread.FpSpread
webForm:FarPoint.Web.Spread.FpSpread

NPOI:.net 版 poi ,所以你自己先去了解poi,他是Java写的,可以在电脑没有Office的条件下,读写Excel

我也有自己的NPOI 学习群:78142590

我也用NPOI不很久,可能之后也不会经常用。

因为工作换了的原因。
糖牙 2009-12-01
  • 打赏
  • 举报
回复
(⊙o⊙)…。额。。不是,是C#程序调用vsto 我建了一个Asp.Net web应用程序和ExcelWorkbook程序
要实现Asp.Net web应用程序调用 ExcelWorkbook程序 我想知道如何调用
直接 Sheet1 sh=new Sheet()要传参,参数不知道怎么传
lindenrty 2009-12-01
  • 打赏
  • 举报
回复
你的意思不是很明白 总而言之是不是根据DT生成Excel文件?

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧