这就是我想要做的.
1.创建excel文件(.xlsx)c://test/files/work1_4.13.14.xlsx,名称为+值(日期)
例如:work1_4.13.14.xlsx
2.将标题设置为文件示例:[名称] [年龄] [城市].
3.我有3个名单,年龄,城市,我需要填写excel表.
这是我的目标
Name Age City
Ben 20 xyz
Jack 25 xyz
Mike 45 zyx
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
目前我的代码使用
SurferApp = Marshal.GetActiveObject("Surfer.Application") as Surfer.Application
Run Code Online (Sandbox Code Playgroud)
为了简单起见,我们可以将Surfer替换为每个人都知道的Word.现在让我说我有两个MS word应用程序正在运行,我想让它们都使用Marshal.GetActiveObject(),我怎样才能获得两个正在运行的实例并将每个实例与一个单独的对象相关联?
我试图打开(或创建一个新的xls)Excel文件并为其写一些值.虽然,如果我只是创建一个新的xls文件,下面的程序工作得很好,我遇到了一些问题
**mWorkBook = oXL.Workbooks.Open (path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);**
Run Code Online (Sandbox Code Playgroud)
这是错误:无法访问"LOG.xls".该文件可能已损坏,位于未响应的服务器上,或者只读.它不是只读的,它没有被破坏(因为有时文件是在运行时创建的).那有什么问题呢?
private static Microsoft.Office.Interop.Excel.Workbook mWorkBook;
private static Microsoft.Office.Interop.Excel.Sheets mWorkSheets;
private static Microsoft.Office.Interop.Excel.Worksheet mWSheet1;
private static Microsoft.Office.Interop.Excel.Application oXL;
private void btnSignIn_Click ( object sender, EventArgs e )
{
string path = "D:\\LOG.xls";
if(!File.Exists(path))
{
File.Create (path);
}
oXL = new Microsoft.Office.Interop.Excel.Application ();
oXL.Visible = true;
oXL.DisplayAlerts = false;
//error on this line
mWorkBook = oXL.Workbooks.Open (path, 0, false, 5, "", "", false, …Run Code Online (Sandbox Code Playgroud) 我可以使用 Marshal.GetActiveObject 访问内存中的 Excel 实例。但这总是返回最旧的现有实例。
我想遍历所有实例并能够选择要链接到的实例。
任何人都可以帮忙解决这个问题吗?