Как я могу заставить мою файловую ассоциацию открывать несколько файлов в одном экземпляре программы?

Я настроил расширение файла в реестре для моей программы в качестве Windows требуется .

В Реестре, под командой shell / open / command, у меня есть:

"C:\MyProgramPath\MyProgram.exe" "%1" 

Это прекрасно работает для меня. Когда кто-то нажимает на один или несколько файлов, связанных с моим приложением, Это всегда создает новый. Может кто-нибудь, пожалуйста, помогите мне с этим. Пожалуйста, дайте небольшой пример кода.

Я не могу редактировать существующий лист Excel с помощью jxl. Это всегда создает новый. Может кто-нибудь, пожалуйста, помогите мне с этим. Пожалуйста, дайте небольшой пример кода.

16
задан TestUser 31 August 2010 в 03:56
поделиться

1 ответ

jxl предназначен для повышения эффективности чтения (поскольку это основное использование API). Чтобы повысить производительность, данные, которые относятся к выходной информации (например, вся информация о форматировании, такая как шрифты), не интерпретируются при чтении электронной таблицы, поскольку это излишне при запросе необработанных значений данных.

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

Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
WritableWorkbook copy = Workbook.createWorkbook(new File("temp.xls"), workbook);

При этом копируется информация, которая уже была считана, а также выполняется дополнительная обработка для интерпретации полей, необходимых для написания электронных таблиц. Недостатком этой стратегии, оптимизированной для чтения, является то, что в памяти хранятся две электронные таблицы, а не одна, что удваивает требования к памяти.

Но после этого вы можете делать все, что хотите. Например:

WritableSheet sheet2 = copy.getSheet(1); 
WritableCell cell = sheet2.getWritableCell(1, 2); 

if (cell.getType() == CellType.LABEL) 
{ 
  Label l = (Label) cell; 
  l.setString("modified cell"); 
}
copy.write(); 
copy.close();
workbook.close();

Примечание: это взято непосредственно из учебной страницы Энди Хана.

25
ответ дан 30 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: