相关疑难解决方法(0)

如何在不安装Ms Office的情况下在C#中创建Excel(.XLS和.XLSX)文件?

如何使用C#创建Excel电子表格而无需在运行代码的计算机上安装Excel?

.net c# excel file-io

1804
推荐指数
37
解决办法
105万
查看次数

如何正确清理Excel互操作对象?

我在C#(ApplicationClass)中使用Excel互操作,并在我的finally子句中放置了以下代码:

while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }
excelSheet = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)

虽然这种工作,Excel.exe即使我关闭Excel后,该过程仍然在后台.只有在我的应用程序手动关闭后才会发布.

我做错了什么,或者是否有其他方法可以确保互操作对象得到妥善处理?

c# excel interop com-interop

733
推荐指数
20
解决办法
30万
查看次数

Excel错误HRESULT:0x800A03EC尝试获取具有单元格名称的范围

我正在使用Window Service项目.必须在序列时间内将数据写入Excel文件中的工作表.

但有时,有时候,服务会在尝试获取带有单元名称的范围时抛出异常"HRESULT异常:0x800A03EC".

我已经打开excel表的代码,并在这里获取单元格.

  • 操作系统:窗口服务器2003 Office:
  • Microsoft Office 2003 sp2

1:打开excel表

m_WorkBook = m_WorkBooks.Open(this.FilePath, 0, false, 5,
     "", "", true, Excels.XlPlatform.xlWindows, ";",
     true, false, 0, true, 0, 0);
Run Code Online (Sandbox Code Playgroud)

2:让单元格写入

protected object m_MissingValue = System.Reflection.Missing.Value;
Range range = m_WorkSheet.get_Range(cell.CellName, m_MissingValue);
// error from this method, and cell name is string.
Run Code Online (Sandbox Code Playgroud)

c# excel vsto exception

19
推荐指数
4
解决办法
10万
查看次数

如何命名我制作的新 Excel 工作表并将其放置在所有工作表的末尾?

我想出了如何用 C# 制作一个新的 Excel 工作表。我这样做:

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
appExcel.Worksheets.Add();
Run Code Online (Sandbox Code Playgroud)

但我不知道如何为我制作的 Excel 工作表命名,也不知道如何将其放在末尾而不是开头。

我试过这个:

sheet1 = appExcel.Worksheets.Add();
sheet1.name = "test";
Run Code Online (Sandbox Code Playgroud)

但这没有用。我也查看了添加功能,但我无法以这种方式填写名称:appExcel.Worksheets.Add("test");

我的代码:

excel_init("C:\\Users\\me\\Desktop\\excel2.xlsx");

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
        private static Workbook newWorkbook_First = null;
        private static _Worksheet objsheet = null;

static void excel_init(String path)
{
    appExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();

    if (System.IO.File.Exists(path))
    {
        // then go and load this into excel
        newWorkbook_First = appExcel.Workbooks.Open(path, true, true,5); // does NOT make 5 excel sheet???
        objsheet = (_Worksheet)appExcel.ActiveWorkbook.ActiveSheet;
    }
    else
    {
        try
        { …
Run Code Online (Sandbox Code Playgroud)

c# excel

6
推荐指数
1
解决办法
9898
查看次数

标签 统计

c# ×4

excel ×4

.net ×1

com-interop ×1

exception ×1

file-io ×1

interop ×1

vsto ×1