Заполните данные в Excel с поддержкой макросов, файл с ошибкой при открытии - PullRequest
0 голосов
/ 27 сентября 2019

Я записываю данные в макрос с поддержкой Excel, используя openxml, как это.Затем я открываю мой destFile, он показывает ошибку вроде this

 public void WriteMacro(string FilePath, List<dataObj> result)
    {
        try
        {
            List<string> excelData = new List<string>();
            using (MemoryStream stream = new MemoryStream(File.ReadAllBytes(FilePath)))
            using (ExcelPackage excelPackage = new ExcelPackage(stream))
            {
                var something = excelPackage.Workbook.Worksheets;
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                for (int i = worksheet.Dimension.Start.Row; i <= worksheet.Dimension.End.Row; i++)
                {
                    for (int j = worksheet.Dimension.Start.Column; j <= worksheet.Dimension.End.Column; j++)
                    {
                        excelData.Add(worksheet.Cells[i, j].Value == null ? "" : worksheet.Cells[i, j].Value.ToString());
                    }
                }
            }

            // G column
            var columnIndex = excelData.IndexOf("Company :") / 3;

            FileInfo file = new FileInfo(FilePath);
            using (ExcelPackage excelPackage = new ExcelPackage(file))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();

                int rowIndex = 4;
                worksheet.Cells[rowIndex, columnIndex].Value = result.FirstOrDefault();

                foreach (var item in result.FirstOrDefault().Data)
                {
                    worksheet.Cells[rowIndex, columnIndex].Value = item;
                    rowIndex++;
                }

                excelPackage.Save();
            }


        }
        catch
        {
        }
    }

dataobj что-то вроде этого

public class dataObj
    {
        public string DestFileName { get; set; }
        public List<string> TabName { get; set; }
        public List<string> ColumnName { get; set; }
        public List<string> Data { get; set; }
    }

Я открыл свой файл с поддержкой макросови нажмите для ремонта.Данные, которые он успешно заполнил внутри.Просто всегда нужно восстанавливать, только открываемый файл поднял мою озабоченность.также файл после того, как мои данные были заполнены, размер был уменьшен с 4537 КБ до 3225 КБ, я думаю, что мне не хватает скопировать какой-нибудь файл макроса или что-нибудь из оригинальной версии?

Для проверки кода.Я просто открываю и пишу в тот же файл.Я провел какое-то исследование этой ошибки, некоторые говорят, что имя вкладки не может иметь », например« Файл сотрудника », у меня его нет в Excel, но у меня есть имя вкладки, например« Файл сотрудника ».даже я изменил этот вид вкладки в Employee_File.ошибка остается там.Я не знаю, где я иду не так.Кто-нибудь, пожалуйста, помогите мне.

Я видел этот учебник https://www.youtube.com/watch?v=K63LAArVPmk, как очистить стили xl из книги.вместо того, чтобы запустить эту программу, чтобы очистить, как я могу сделать это, используя любые коды?

...