こんにちは私はそれぞれの行にそれぞれExcelシートからこれらのフィールドをcontaningフォームを生成する必要がある複数のデータを持つカラム名と給与をcontaningエクセルシートを持っています。どうすればPHPでこれを行うことができますか?私はthis.pleaseヘルプのためにmysqlを使いたくありません。どのようにフォームを生成することができますか?
0
A
答えて
1
まず、Excelデータを読み取る必要があります。どのバージョンのExcelですか? xlsまたはxlsx? これには代替手段がありますが、PHPExcelライブラリを使用することをお勧めします。
include 'PHPExcel/IOFactory.php';
$inputFileName = './sampleData/example1.xls';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
は標準のPHP配列のワークシートデータを提供します。 http://www.php.net/manual/fr/function.fgetcsv.php
チェックこのサンプル:あなたはCSVファイルを使用することができれば
0
、あなたは fgetcsvとfputcsvを使用することができます。
<?php
define('INPUT_FILENAME', '/path/to/your/csv/file');
define('OUTPUT_FILENAME', '/path/to/your/csv/file');
define('SEPARATOR', ',');
define('ENCLOSURE', '"');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['entries'])) {
$entries = $_POST['entries'];
}
// do the validation stuff here ...
if ($ok) {
// save the entries into the DESTINATION file
$handle = fopen(OUTPUT_FILENAME, 'w');
foreach ($entries as $entry) {
$fields = array(
$entry['name'],
$entry['salary']
);
fputcsv($handle, $fields, SEPARATOR, ENCLOSURE);
}
exit('done');
}
}
if (!isset($entries)) {
// fetch the entries
$entries = array();
if (($handle = fopen(INPUT_FILENAME, 'r')) !== false) {
while (($row = fgetcsv($handle, 1000, SEPARATOR, ENCLOSURE)) !== false) {
list($name, $salary) = $row;
$entries[] = array(
'name' => $name,
'salary' => $salary
);
}
fclose($handle);
}
}
// display the form
print '<form action="#" method="post">';
foreach ($entries as $i => $entry) {
print '<fieldset>';
print '<label>Name';
printf('<input type="text" name="entries[%s]name" value="%s" />', $i, htmlspecialchars($entry['name']));
print '</label>';
print '<label>Name';
printf('<input type="text" name="entries[%s]salary" value="%s" />', $i, htmlspecialchars($entry['salary']));
print '</label>';
print '</fieldset>';
}
print '<input type="submit" />';
print '</form>';
そして、エントリーごとに一つの形:
<?php
define('INPUT_FILENAME', '/path/to/your/csv/file');
define('OUTPUT_FILENAME', '/path/to/your/csv/file');
define('SEPARATOR', ',');
define('ENCLOSURE', '"');
$entries = array();
// Allways prefetch entries
if (($handle = fopen(INPUT_FILENAME, 'r')) !== false) {
while (($row = fgetcsv($handle, 1000, SEPARATOR, ENCLOSURE)) !== false) {
list($name, $salary) = $row;
$entries[] = array(
'name' => $name,
'salary' => $salary
);
}
fclose($handle);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$position = null;
if (isset($_POST['position'])) {
$position = (int) $_POST['position'];
}
$name = null;
if (isset($_POST['name'])) {
$name = $_POST['name'];
}
$salary = null;
if (isset($_POST['salary'])) {
$salary = $_POST['salary'];
}
// do the validation stuff here ...
if ($ok) {
// merge the entry into the list
$entries[$position] = array(
'name' => $name,
'salary' => $salary
);
// save the entries into the DESTINATION file
$handle = fopen(OUTPUT_FILENAME, 'w');
foreach ($entries as $entry) {
$fields = array(
$entry['name'],
$entry['salary']
);
fputcsv($handle, $fields, SEPARATOR, ENCLOSURE);
}
exit('done');
}
}
// display
foreach ($entries as $i => $entry) {
// one form per entry
print '<form action="#" method="post">';
print '<fieldset>';
print '<label>Name';
printf('<input type="text" name="name" value="%s" />', htmlspecialchars($entry['name']));
print '</label>';
print '<label>Name';
printf('<input type="text" name="salary" value="%s" />', htmlspecialchars($entry['salary']));
print '</label>';
printf('<input type="hidden" name="position" value="%s"', $i);
print '</fieldset>';
print '<input type="submit" />';
print '</form>';
}
0
は、ウェブページとしてファイルを保存し、それにPHPスクリプトを少し書きます。 mysqlが必要ない場合は、Sqliteを使用して値を格納します。 Sqliteはファイルのようになります。
関連する問題
- 1. フォームを構成するこれらのエコーステートメントをどのようにスタイルすることができますか
- 2. このハッシュはどのように生成できますか?
- 3. どのようにAJAXフォーム認証を行うことができますか?
- 4. どのように私はこのようなボタンをWindowsのフォームで作ることができますか?
- 5. どうすればこのようなフォームを作成できますか?
- 6. フォームの作成手順をどのようにすることができますか?
- 7. どのように1つのフォームのラベルオブジェクトを他のフォームに使用することができますか
- 8. サービス側の非同期インターフェイスを生成しますか? CXFはこのような何かを生成することができるかどうか
- 9. CSSが生成した矢印をどのように動かすことができますか?
- 10. 1が行うことができますようにWinフォーム
- 11. どのように私はangular2とGoogle測量フォームを作成することができます
- 12. このコードをRacket/Schemeでどのように生成できますか?
- 13. フォーム入力が変更されたことをどのように知ることができますか?
- 14. このコードはどのようにしてセグメンテーションフォルトを生成できますか?
- 15. Enterprise Architectが生成するドキュメントブロックをどのようにカスタマイズできますか?
- 16. ユーザーがスクリーンショットを作成したかどうかはどのように知ることができますか?
- 17. どこで/どのようにvsftpdのhtmlコードが生成されますか?
- 18. LESSが生成するASTにはどのようにアクセスできますか?
- 19. フォームからUIグリッドテーブルを生成するにはどうすればよいですか?ここ
- 20. はnumpy.ufunc.reduceat指数は、Pythonスライスオブジェクトから生成することができますどのように
- 21. どのように私はマングースで子モデルを生成することができます
- 22. このバッチファイルでは、°、±&2が°、▒&²をどのように生成しますか?
- 23. どのようにして、メニューコントロールがULタグとLIタグで余分なクラスとスタイルを生成しないようにすることができますか?
- 24. どのように私はhtmlの要素のスタイルを変更することができますdinamically生成?
- 25. このコードをどのようにリファクタリングすることができますか?
- 26. tsconfig.jsonファイルはどのように生成できますか?
- 27. ソフトウェアアップデートパッケージはどのように生成できますか?
- 28. どのようにエラーを失うことなく、無効なフォーム送信をフォームにリダイレクトできますか?
- 29. Eclipseのゲッターとセッターの生成をどのようにカスタマイズできますか?
- 30. removeEventListenerが成功したことをどのように知ることができますか?
おかげで素晴らしいソリューションがあります。どうすればいいですか、どうすれば各行に新しいフォームを開くことができますか。 –
エントリーごとに1つのフォームを追加しました。サンプルを確認してください。 –