c#如何打开EXCEL在程序界面上显示

c#如何打开EXCEL在程序界面上显示,第1张

using System;

using SystemCollectionsGeneric;

using SystemText;

using MicrosoftOfficeInteropExcel;

using SystemWindowsForms;

namespace InnderWord

{

public class ExcelEmbed:OfficeBase

{

public ExcelEmbed()

{

}

private int HandleId = 0;

private ApplicationClass exClass;

private Workbook wkBook;

private IntPtr exWnd = IntPtrZero;

private string FileName;

private void exClass_WorkbookBeforeClose(Workbook wkBook, ref bool bCancel)

{

}

/// <summary>

/// 加载word文件

/// </summary>

/// <param name="fileName">文件路径</param>

/// /// <param name="handleId">父窗口句柄ID</param>

public void LoadFile(string fileName, int handleId)

{

try

{

if (exClass == null)

{

exClass = new ApplicationClass();

}

FileName = fileName;

HandleId = handleId;

exClassCommandBarsAdaptiveMenus = false;

exClassWorkbookBeforeClose +=new AppEvents_WorkbookBeforeCloseEventHandler(exClass_WorkbookBeforeClose);

//exClassdocum

if (wkBook != null)

{

exClassWorkbooksClose();

}

///加载文档

if (exWnd == IntPtrZero)

{

exWnd = WinAPIFindWindow("XLMAIN", null);

WinAPISetParent(exWndToInt32(), handleId);

//exClassWorkbooksAdd(true);

object filename = fileName;

object newTemplate = false;

object docType = 0;

object readOnly = true;

object isVisible = true;

object MissingValue=SystemReflectionMissingValue;

if (exClass != null && exClassWorkbooks != null)

{

wkBook =exClassWorkbooksOpen(fileName,

MissingValue, MissingValue,MissingValue, MissingValue,

MissingValue, MissingValue,MissingValue,MissingValue,

MissingValue, MissingValue, MissingValue,

MissingValue, MissingValue, MissingValue);

}

if (wkBook == null)

{

//throw new Exception("Word文档加载失败!");

}

}

SetExcelStyle(handleId);

//wkBookSendForReview();

//wkBookSendForReview();

// wkBookSheetBeforeDoubleClick+=new WorkbookEvents_SheetBeforeDoubleClickEventHandler(wkBook_SheetBeforeDoubleClick);

//wkBookEndReview();

//wkBookActivate();

// wkBookCanCheckIn();

// wkBookCheckIn();

//wkBookExclusiveAccess();

//wkBookForwardMailer();

// wkBookNewWindow();

//wkBookRoute();

// wkBookWorksheetsApplicationActivateMicrosoftApp();

//SetCommandBars();

//((Worksheet)exClassWorkbooks[1]Worksheetsget_Item(1))get_Range("A1", "B2")Value = "";

// WinAPISendMessage(exWnd, WM_KEYDOWN, 65, 0);

// WinAPISendMessage(exWnd, WM_KEYUP, 65, 0);

//WinAPImouse_event(WinAPIMOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);

//SystemThreadingThreadSleep(100);

// WinAPImouse_event(WinAPIMOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

//IntPtr sheetWnd = WinAPIFindWindow("XLDESK", null);//"XLDESK"

//WinAPISendMessage(sheetWnd, WM_KEYDOWN, 65, 0);

//WinAPISendMessage(sheetWnd, WM_KEYUP, 65, 0);

}

catch (Exception ex)

{

throw ex;

}

}

/// <summary>

/// 设置打开word文档的样式

/// </summary>

/// <param name="exClass"></param>

private void SetExcelStyle(int handleId)

{

if (exClass != null)

{

//exClassActiveWindowDisplayHorizontalScrollBar = false;

//exClassActiveWindowDisplayFormulas = false;

//exClassActiveWindowDisplayGridlines = false;

//exClassActiveWindowDisplayHeadings = false;

//exClassActiveWindowDisplayOutline = false;

//exClassActiveWindowDisplayRightToLeft = false;

//exClassActiveWindowDisplayZeros = false;

//exClassActiveWindowDisplayVerticalScrollBar = false;

// exClassActiveWorkbookAutoUpdateSaveChanges = true;

//exClassAutoCorrect =

//exClassAutoFormatAsYouTypeReplaceHyperlinks = true;

// exClassAskToUpdateLinks = true;

//exClassCalculationInterruptKey = XlCalculationInterruptKeyxlAnyKey;

// exClassActiveWindowView = XlWindowViewxlNormalView;

// exClassWorkbooks[0]Activate();

exClassVisible = true;

//wkBookIsAddin = false;

//wkBookHasRoutingSlip = true;

//wkBookAutoUpdateFrequency = 1;

//wkBookActivate();

wkBookInactiveListBorderVisible = false;

WinAPISetWindowPos(exWnd, handleId, 1, 1,

FormFromHandle((IntPtr)handleId)BoundsWidth,

FormFromHandle((IntPtr)handleId)BoundsHeight,

SetWindowPosFlagsSWP_NOZORDER |

SetWindowPosFlagsSWP_NOMOVE |

SetWindowPosFlagsSWP_DRAWFRAME |

SetWindowPosFlagsSWP_NOSIZE);

OnResize(handleId);

}

}

/// <summary>

/// 设置word上面工具栏

/// </summary>

private void SetCommandBars()

{

if (exClass != null)

{

int count = exClassCommandBarsCount;

for (int j = 1; j <= count; j++)

{

string menuName = exClassCommandBars[j]Name;

if (menuName == "Standard")

{

int count_control = exClassActiveWindowApplicationCommandBars[j]ControlsCount;

for (int k = 1; k <= 2; k++)

{

exClassActiveWindowApplicationCommandBars[j]Controls[k]Enabled = false;

}

}

if (menuName == "Menu Bar")

{

exClassActiveWindowApplicationCommandBars[j]Enabled = false;

}

menuName = "";

}

///移除按钮

int hMenu = WinAPIGetSystemMenu(exWnd, false);

if (hMenu > 0)

{

int menuItemCount = WinAPIGetMenuItemCount(hMenu);

for (int m = 1; m <= 8; m++)

{

WinAPIRemoveMenu(hMenu, menuItemCount - m, WinAPIMF_REMOVE | WinAPIMF_BYPOSITION);

}

WinAPIDrawMenuBar(exWnd);

}

}

}

/// <summary>

/// 保存打开的文件

/// </summary>

public void Save()

{

if (wkBook != null)

{

wkBookSave();

}

}

/// <summary>

/// 关闭打开的文件

/// </summary>

public void Close()

{

Save();

//exClassWorkbooksClose();

if (wkBook != null)

{

exClassWorkbooksClose();

SystemRuntimeInteropServicesMarshalReleaseComObject(wkBook);

}

if (exClass != null)

{

exClassQuit();

SystemRuntimeInteropServicesMarshalReleaseComObject(exClass);

exClass = null;

}

GCCollect();

}

/// <summary>

/// 当大小发生改变时

/// </summary>

public void OnResize(int handleId)

{

int borderWidth = SystemInformationBorder3DSizeWidth;

int borderHeight = SystemInformationBorder3DSizeHeight;

int captionHeight = SystemInformationCaptionHeight;

int statusHeight = SystemInformationToolWindowCaptionHeight;

WinAPIMoveWindow(

exWnd,

-2 borderWidth,

-2 borderHeight - captionHeight,

FormFromHandle((IntPtr)handleId)BoundsWidth + 4 borderWidth,

FormFromHandle((IntPtr)handleId)BoundsHeight + captionHeight + 4 borderHeight + statusHeight,

true);

}

/// <summary>

///文档关闭前

/// </summary>

/// <param name="doc"></param>

/// <param name="bCancel"></param>

private void exClass_wkBookBeforeClose(Workbook doc, ref bool bCancel)

{

Save();//确保文档关闭前能保存

bCancel = true;

}

}

}

excel中的数据复制过去为什么会全部变成0啊?

因EXCEL默认常规或数值格式下,超过10位数系以科学记数法显示,超过15位的数以0的形现。

解决出现”变0“问题的方法:

1、事先将单元格格式设置为文本。

2、选定单元格,在其上点鼠标右键——“设置单元格格式”。

3、点“数字”标签——“文本”——“确定”。

4、输入数字时先输入一个半角单引号‘ ,比如,'1234567890123456789。

5、这样就可以避免输入长数字,表格上只显示0的情况了。

EXCEL里多位数字尾数自动变成0怎么办? 比如把2005

excel输入数字后后面几位变成了几个0要改为正常输入显示数字格置成“文本”即

方法步骤如下:

1、打开需要 *** 作的EXCEL表格,选择需要设置的单元格,点击鼠标右键,选择“设置单元格格式”。

2、在“数字”标签页选项中点击“文本”,然后点击下面的确定按钮即可。

3、返回EXCEL表格,在设置为文本格式的单元格重新输入数字发现可正常输入。

excel数字后面变成0怎么还原

首先将会变成0的那个格子事先设置成文本格式,然后将所要做的数字复制,然后进行粘贴,就可以了,粘贴的时候使用匹配目标格式。就可以了。

excel做表格时为什么长的数字输进去后面几位数都变

EXCEL的数值精度为15位,超15位的数字后的非0数字会变成0不可逆转。超过15位的数字文本格式输入。方法如下:

1、如果使用excel默认的方式输入数字之后,会直接显示成科学计数法,而且如果双击查看数据内容,后面几位可能直接是0。这样就会导致数据不准确,需要对单元格格式进行设置。

2、简单方便的方法是直接在输入数字的excel单元格前面先输入英文的'上引号,然后在输入数字,这样excel的单元格直接被转换成文本格式,文本格式就不会自动转成科学计数法。

3、通过单元格数据格式进行设置,对多个单元格进行统一设置格式。可以选中需要输入数字的单元格,点击右键--选择设置单元格格式。

4、选择文本方式。在设置数字格式中,选择文本,然后点击确定保存设置,这样单元格就设置成文本方式。

5、测试输入一串数字。设置过的单元格后,然后输入数字,就会自动显示数字格式,而且不会进行转换。

6、如果需要设置的单元格比较多,可以一次选中多个,进行一起设置单元格格式为文本方式。

扩展资料

1、Mirosoft Excel是电子试算表程序,与Microsoft Word一样,它在市场拥有统治份额。它最初对占优势的Lotus 1-2-3是个竞争者,但最后它卖得比它多、快,于是它成为了实际标准。它适宜Windows和Macintosh平台。它的主要竞争者是OpenOfficeorg Calc、AppleNumbers和CorelQuattro Pro。

2、Microsoft Excel是Microsoft为使用Windows和Apple Macintosh *** 作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsoft Office的组件发布了50版之后,Excel就开始成为所适用 *** 作平台上的电子制表软件的霸主。

3、Excel是第一款允许用户自定义界面的电子制表软件(包括字体、文字属性和单元格格式)。它还引进了“智能重算”的功能,当单元格数据变动时,只有与之相关的数据才会更新,而原先的制表软件只能重算全部数据或者等待下一个指令。同时,Excel还有强大的图形功能。

为什么在EXCEL里输入较长的数据 会自动把最后几个

很不幸,这不能还原了。或者说,还原后会变成一个15位数字加后面3位是000的新数值。这样为excel中,对数值型数据仅支持15位,超过15位时,超过部分会用0替代。还有,你上面的显示方式为,科学记数法的显示方式。为了规避问题,你需要在输入信息前,先将你的单元格设置为文本型。然后再输入的话,就不会出现这个问题了。

一、打开Excel程序,进入Excel程序主界面中,此时的上方工具栏隐藏。

二、然后,在上方菜单中点击“视图”选项,点击打开、

三、然后,在空白处点击鼠标右键,取消勾选“功能区最小化”。

四、最后,即可在Excel主界面上方找到Excel程序的工具栏,问题解决。

工作表的名字显示在工作簿文件窗口底部的标签里。

相关介绍:

用户可以在标签上单击工作表的名字,来实现在同一工作簿中切换不同的工作表。如果要查找的工作表名没有在底部的标签中显示,可以通过按下标签滚动按钮来将它移动到当前的显示标签中。

在Excel程序界面的下方可以看到工作表标签,默认的名称为“Sheet1”、“Sheet2”、“Sheet3”。每个工作表中的内容相对独立,通过单击工作表标签可以在不同的工作表之间进行切换。

扩展资料

工作簿和工作表间关系:

工作簿和工作表的关系就像书本和页面的关系,每个工作簿中可以包含多张工作表,工作簿所能包含的最大工作表数受内存的限制。

工作簿保存时文件后缀为XLS(03版以前)或XLSX(07版)工作表有时被称为SHEET。工作表默认的名称是sheet1等。EXCEL中工作簿和工作表都可以跨文件引用。

参考资料来源:百度百科-工作簿

以上就是关于c#如何打开EXCEL在程序界面上显示全部的内容,包括:c#如何打开EXCEL在程序界面上显示、求大神帮助!Excel界面变了想还原、excel2010工具菜单在哪等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9350074.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存