|
|
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
нужно содержимое ячеек в документе Excel проанализировать на тип хранящегося значения и это значение поместить в соответствующую таблицу в MySql (если документе тип значения в ячеике Integer - то в таблицу Integer(znachenie_id, samo_znachenie), если Double-значение, то в таблицу Double(znachenie_id, samo_znachenie), если Double-значение, то в таблицу Double(znachenie_id, samo_znachenie). Я применяю на Cell функцию getContents(): т.е. делаю в Sheet s: Код: plaintext 1. а затем передаю полученную строку в функцию: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. С Integer и String проблем нет. Но функция s.getCell().getContents() каким-то образом неправильно работает с Double-значениями, например, применяя эту функцию на значение 0.003515, она возвращает строку "0,003", хотя должна вернуть строку "0,003515". Естъ какой-то другои способ получения типа и значения в Cell? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 15:10 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
А вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 16:24 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
Спасибо большое! Ещё вопрос один: (((NumberCell)c2).getValue()) возвращает Double значение, а как Integer вернуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 17:31 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
А через формат ячейки можно попробовать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 18:00 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
у меня функция c2.getCellFormat().getFormat().getFormatString()) возвращает null даже если ячейка не пустая. Т.е. вот этот кусок кода: Cell c2 = sheet.getCell(0,2); //в c2 - 0,003515 System.out.println(c2.getType()); System.out.println("Формат: " + c2.getCellFormat().getFormat().getFormatString()); выдаёт мне: Формат: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 11:36 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
Значит, проблемы какие-то с заданием формата ячеек в Excel-файле. Со сравнением строк я, конечно, сглупила в спешке. :( Конечно же equals. if (c2.getType() == CellType.NUMBER && c2.getCellFormat().getFormat().getFormatString().equals("0.000000")) if (c1.getType() == CellType.NUMBER && c1.getCellFormat().getFormat().getFormatString().equals("0")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 12:33 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
А какие могут быть проблемы с форматом ячеек в Excel? про сравнение строк я поняла, что описка, а вот с форматом прямо горе :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 15:25 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
Для своего примера я в Excel-файле явным образом указала формат каждой ячейки, и никаких проблем с выводом формата у меня не возникло. A1 (Cell c) - Текстовый A2 (Cell c1) - Числовой (число десятичных знаков: 0) A3 (Cell c2) - Числовой (число десятичных знаков: 6) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 15:32 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
ааа, у меня нет возможности задать формат каждой ячейки, т.к. есть уже готовые файлы с информацией (разным количеством столбцов, разными форматами), и нужно написать программу, которая по ячейке бы их правильно загоняла в соответствующие таблицы в MySql. У тебя больше нет подобных хороших идей, не затрагивая формат? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 16:05 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 16:19 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
я сделала так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 12:38 |
|
||
|
транспортировка Excel->MySql
|
|||
|---|---|---|---|
|
#18+
Все равно, как я понимаю, тип числа в Excel определяется форматом ячейки А так получается, что вы можете записать в таблицу Integer число с с форматом Double, которое представимо как Integer, т.е. 12345,0 Эксперименты показывают, что формат ячейки не определяется ExcelAPI, когда он "Общий", т.е. в ячейку может быть записано и число, и текст В ячейку с "Общим" форматом невозможно записать число ни 12345,0 , ни число 12345,00 и т.д., т.к. оно автоматически преобразуется к виду 12345 Поэтому, как мне кажется, формат нужно проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33645628&tid=2149670]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 446ms |

| 0 / 0 |
