近期看了一篇文章代码如下,由于我用的是VS2011的版本所以我添加引用的时候是
com--Microsoft Excel 12.0 object Library .// Microsoft Word 12.0 object Library
当把下面代码copy到VS中 using Excel会报错误,程序联想不到 Using Excel;求解答该如何引用啊 //网站 ---添加引用--com--Microsoft Excel 9.0 object Library .// Microsoft Word 9.0 object Library using System.Reflection;
using Excel;
using System.Diagnostics;
using Microsoft.Office;public partial class tel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//word
Response.Write(Get_Html("New.doc"));
//excel
ExcelConvertToHtml("E:\\12345.xls","E:\\aaa.html");
} protected void ExcelConvertToHtml(string xlsPath, string htmlPath)
{
try
{
Excel.Application app = new Excel.Application();
app.Visible = false;
Object o = Missing.Value; /// _Workbook xls=app.Workbooks.Open(xlsPath,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o); _Workbook xls = app.Workbooks.Open(xlsPath, o, o, o, o, o, o, o, o, o, o, o, o);
object fileName = htmlPath;
object format = Excel.XlFileFormat.xlHtml;//Html // xls.SaveAs(ref fileName,ref format,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o);
xls.SaveAs(fileName, format, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o);
//xls.SaveAs(
object t = true;
app.Quit(); Process[] myProcesses = Process.GetProcessesByName("EXCEL");
foreach (Process myProcess in myProcesses)
{
myProcess.Kill();
}
}
catch (Exception ex)
{
System.Console.Write(ex.Message);
// MessageBox.Show(ex.Message);
}
}
private string Get_Html(string FileName)
{ Word.ApplicationClass word = new Word.ApplicationClass();
Type wordType = word.GetType();
Word.Documents docs = word.Documents; // 打开文件
Type docsType = docs.GetType();
// RAID.doc
// string newFileNamePath = this.Server.MapPath(mydata.Config.SysUploadPath + "/" + FileName);
string newFileNamePath = this.Server.MapPath("download/" + FileName);
Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { newFileNamePath, true,true }); // 转换格式,另存为
Type docType = doc.GetType();
object saveFileName = newFileNamePath.Replace(".doc", ".htm");
//下面是Microsoft Word 9 Object Library的写法,如果是10,可能写成:
/*
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML});
*/
///其它格式:
///wdFormatHTML
///wdFormatDocument
///wdFormatDOSText
///wdFormatDOSTextLineBreaks
///wdFormatEncodedText
///wdFormatRTF
///wdFormatTemplate
///wdFormatText
///wdFormatTextLineBreaks
///wdFormatUnicodeText
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatHTML }); // 退出 Word
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null); string newFileName = FileName.Replace(".doc", ".htm");
return (newFileName);
}}
com--Microsoft Excel 12.0 object Library .// Microsoft Word 12.0 object Library
当把下面代码copy到VS中 using Excel会报错误,程序联想不到 Using Excel;求解答该如何引用啊 //网站 ---添加引用--com--Microsoft Excel 9.0 object Library .// Microsoft Word 9.0 object Library using System.Reflection;
using Excel;
using System.Diagnostics;
using Microsoft.Office;public partial class tel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//word
Response.Write(Get_Html("New.doc"));
//excel
ExcelConvertToHtml("E:\\12345.xls","E:\\aaa.html");
} protected void ExcelConvertToHtml(string xlsPath, string htmlPath)
{
try
{
Excel.Application app = new Excel.Application();
app.Visible = false;
Object o = Missing.Value; /// _Workbook xls=app.Workbooks.Open(xlsPath,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o); _Workbook xls = app.Workbooks.Open(xlsPath, o, o, o, o, o, o, o, o, o, o, o, o);
object fileName = htmlPath;
object format = Excel.XlFileFormat.xlHtml;//Html // xls.SaveAs(ref fileName,ref format,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o);
xls.SaveAs(fileName, format, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o);
//xls.SaveAs(
object t = true;
app.Quit(); Process[] myProcesses = Process.GetProcessesByName("EXCEL");
foreach (Process myProcess in myProcesses)
{
myProcess.Kill();
}
}
catch (Exception ex)
{
System.Console.Write(ex.Message);
// MessageBox.Show(ex.Message);
}
}
private string Get_Html(string FileName)
{ Word.ApplicationClass word = new Word.ApplicationClass();
Type wordType = word.GetType();
Word.Documents docs = word.Documents; // 打开文件
Type docsType = docs.GetType();
// RAID.doc
// string newFileNamePath = this.Server.MapPath(mydata.Config.SysUploadPath + "/" + FileName);
string newFileNamePath = this.Server.MapPath("download/" + FileName);
Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { newFileNamePath, true,true }); // 转换格式,另存为
Type docType = doc.GetType();
object saveFileName = newFileNamePath.Replace(".doc", ".htm");
//下面是Microsoft Word 9 Object Library的写法,如果是10,可能写成:
/*
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML});
*/
///其它格式:
///wdFormatHTML
///wdFormatDocument
///wdFormatDOSText
///wdFormatDOSTextLineBreaks
///wdFormatEncodedText
///wdFormatRTF
///wdFormatTemplate
///wdFormatText
///wdFormatTextLineBreaks
///wdFormatUnicodeText
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatHTML }); // 退出 Word
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null); string newFileName = FileName.Replace(".doc", ".htm");
return (newFileName);
}}
这是我以前做 Word 操作时写的文档,繁体的,将就着看下吧一、因為列印實驗室申請書使用 Word 組件,默認情形下匿名用戶無法調用 Word 組件,所以必須調整默認權限設置,如下:
1、點擊“開始”-> “執行”,輸入命令“dcomcnfg.exe”
2、在打開的程式窗口中,選擇左側的“主控台根目錄”->“元件服務”->“電腦”->“我的電腦”->“DCOM 設定”,若彈出提示信息,點“否”即可。
3、在窗口右側找到“Microsoft Office Word 97 - 2003 文件”,右擊選擇“內容”->“識別碼”,點選“互動式使用者 - 目前登入的使用者”選項。
4、然後點擊“安全設定”附簽,“啟動和啟用權限”設為“自訂”,並點擊“編輯”按鈕,在彈出的對話框中,點擊“新增”->“進階”->“立即尋找”,找到用戶“Network Service”,添加進來,並設置其權限“本機啟動”及“本機啟用”為允許。
5、同4,設置“存取權限”為“自訂”,增加用戶“Network Service”,並設置其權限“本機存取”為允許。
Microsoft.Office.Interop.Excel 时 应把他的属性Embed Interop Type设置为False:就OK了