запись длинного текста в рабочей книге Excel с помощью interop бросает ошибку?

Я знаю, что это не совсем vim. Но я нахожу интеграцию cscope действительно хорошей, и она мне очень помогает при взломе ядра linux.

Ctrl- \ g, чтобы найти определение функции Ctrl- \ s, чтобы найти все применения функции / макроса / переменной.

7
задан Teen 29 May 2012 в 00:43
поделиться

3 ответа

в следующей статье базы знаний объясняется, что максимальный предел составляет 911 символов. Я проверил то же самое в своем коде, он работает для строк до 911 символов.

http://support.microsoft.com/kb/818808

Работа, упомянутая в этой статье, рекомендует убедиться, что ни одна ячейка не содержит больше чем 911 знаков. это отстой!

5
ответ дан 6 December 2019 в 12:53
поделиться

Существует предел (где-то от 800 до 900 символов, если я правильно помню), который почти невозможно обойти таким образом.

Попробуйте использовать старое соединение и вставить данные с Команда SQL. Это может сработать для вас лучше. затем при необходимости можно использовать взаимодействие для любого форматирования.

5
ответ дан 6 December 2019 в 12:53
поделиться

Хорошая статья Ole и excel: http://support.microsoft.com/kb/316934

Следующий код обновляет частную переменную, которая представляет собой количество успешных строк и возвращает строку, которая представляет собой путь к файлу Excel.

Не забудьте использовать Путь из System.IO; !

string tempXlsFilePathName; string result = new string;

        string sheetName;
        string queryString;

        int successCounter;

        // set sheetName and queryString
        sheetName = "sheetName";
        queryString = "CREATE TABLE " + sheetName + "([columnTitle] char(255))";

        // Write .xls
        successCounter = 0;
        tempXlsFilePathName = (_tempXlsFilePath + @"\literalFilename.xls");
        using (OleDbConnection connection = new OleDbConnection(GetConnectionString(tempXlsFilePathName)))
        {
            OleDbCommand command = new OleDbCommand(queryString, connection);
            connection.Open();
            command.ExecuteNonQuery();

            yourCollection.ForEach(dataItem=>
            {
                string SQL = "INSERT INTO [" + sheetName + "$] VALUES ('" + dataItem.ToString() + "')";
                OleDbCommand updateCommand = new OleDbCommand(SQL, connection);
                updateCommand.ExecuteNonQuery();
                successCounter++;
            }
            );

            // update result with successfully written username filepath
            result = tempXlsFilePathName;
        }

        _successfulRowsCount = successCounter;
        return result;

NB Это было отредактировано в спешке, поэтому может содержать некоторые ошибки.

4
ответ дан 6 December 2019 в 12:53
поделиться