Я относительно новичок в C#. Мой код постоянно не может вставлять значение в ячейку. Я был на этом уже несколько дней. Я пробовал почти все (как вы можете видеть в коде), но продолжаю получать неизвестные ошибки. < /P>
Обычно эта ошибка: < /p>
System.Runtime.InteropServices.COMException (0x800A03EC): 0x800A03EC
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Object[] aArgs, Boolean[] aArgsIsByRef, Int32[] aArgsWrapperTypes, Type[] aArgsTypes, Type retType)
at Microsoft.Office.Interop.Excel.Range.set__Default(Object RowIndex, Object ColumnIndex, Object )
< /code>
Я использую Interop Excel и пытаюсь вызовать функции в Excel с помощью Exceldna. По сути, я пытаюсь получить значения в диапазоне (["A1", "A100"]) из листа под названием prefill_sheet . Затем проберите каждую ячейку в диапазоне, получите его значение и передайте ее в API OpenAI для обработки. Эта часть работала до сих пор. Я попытался добавить ячейку значения по ячейке внутри петли, и она все еще дает мне ту же ошибку. Я пытался использовать диапазон , чтобы установить значение. Та же ошибка. Когда я использую range.set_value () , я получаю ошибку несоответствия типа.
код:
public static class AIPrefillSummarization{
[ExcelFunction(Description = "Summarize Prefill", Name = "SummarizePrefill")]
public static string Summarize_Prefill()
{
try
{
Application excelApp = Marshal2.GetActiveObject("Excel.Application") as Application;
Worksheet? prefill_sheet = excelApp.Sheets["Prefill"] as Worksheet;
Worksheet? summarySheet = excelApp.Sheets["Prefill Summary"] as Worksheet;
Worksheet? configSheet = excelApp.Sheets["Config"] as Worksheet;
if (prefill_sheet != null && configSheet != null && summarySheet != null)
{
String? apiKey = configSheet.Range["A1"].Value as String;
prefill_sheet.Visible = XlSheetVisibility.xlSheetVisible;
prefill_sheet.Unprotect();
Excel_Range prefillRange = prefill_sheet.Range["A1", "A100"];
if (apiKey == null || apiKey.Equals(""))
{
return "API Key not found in Config sheet A1!";
}
List summaries = new List();
for (int i = 0; i < prefillRange.Rows.Count; i++)
{
Excel_Range cell = (Excel_Range) prefillRange.Cells[i + 1, 1];
if (cell == null)
{
continue;
}
object cellValue = cell.Value;
string? value = cellValue?.ToString();
if (value == null || value == "")
{
summaries.Add("HELLO ALEX...");
continue;
}
else
{
//Console.WriteLine($"cell_value: {value}");
//summaries.Add(SendToChatGPT(value, apiKey));
summaries.Add("HELLO ALEX...");
}
}
Excel_Range allCells = summarySheet.Cells;
allCells?.ClearContents();
// Assuming 'summarySheet' is an Excel worksheet object and 'summaries' is a List
Excel_Range range = summarySheet.Range["A1"];
var summariesArray = summaries.ToArray();
range.ClearContents();
summarySheet.Activate();
// Create a two-dimensional array (1 column, N rows)
int startRow = 1;
object[,] outputArray = new object[summariesArray.Length, 1];
for (int i = 0; i < summariesArray.Length; i++)
{
//Excel_Range cell = (Excel_Range)summarySheet.Rows.Cells[startRow + i, 1];
try
{
outputArray[i, 0] = summariesArray;
//cell.Value = "Hello";
}
catch (Exception ex)
{
return $"Error writing to cell {startRow + i}, {1}: {ex}: range.Address: {range.Address}";
}
}
// Resize the range to match the number of items in summaries
range = range.Resize[summariesArray.Length, 1];
StringBuilder debugOutput = new StringBuilder();
for (int i = 0; i < summariesArray.Length; i++)
{
debugOutput.AppendLine($"Row {i + 1}: {outputArray[i, 0]}");
}
//return debugOutput.ToString();
// Assign the values to the Excel range
range.set_Value(outputArray);
//range.Value2 = outputArray;
}
return "Prefill summarized!";
}
catch (Exception ex)
{
return ex.ToString();
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... erop-excel
Диапазон постоянно терпит неудачу в сборе значений в C# с Interop Excel ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Pytube постоянно терпит неудачу с HTTP Error 400: Плохой запрос также в последней версии
Anonymous » » в форуме Python - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Pytube постоянно терпит неудачу с HTTP Error 400: Плохой запрос также в последней версии
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Pytube постоянно терпит неудачу с HTTP Error 400: Плохой запрос также в последней версии
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Office.Interop.Excel и Office.Interop.Outlook Развертывание по щелчку мыши и Windows 11
Anonymous » » в форуме C# - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-