אופיס 365 הכנסת פסיק (,) לסימון אלפים במספרים

vn453

משתמש חדש
יש לי טקסטים ב-‏word‏ שיש בהם מספרים ארוכים כמו: 1000, 33456, 129834569 וכיו"ב.‏
איך אני יכול בפקודה אחת להכניס פסיק לאחר כל שלוש ספרות מצד ימין, כדי שהתוצאה ‏תהיה כך: 1,000, 33,456, 129,834,569.‏
ועוד משהו: הכותב לא הקפיד על אחידות ולפעמים הוא הכניס פסיק לאחר שלוש ספרות ‏ולפעמים לא. צריך שלא יהיו שני פסיקים רצופים במספר (,,).‏
כמו כן לפעמים יש מספרים כאלו: 5975.60 ₪, ואז צריך להפוך זאת כך: 5,975.60. לעומת ‏זאת, אם הכותב טעה וכתב נקודה במקום פסיק, צריך לתקן. למשל אם כתב 5.975.60 יש לתקן ‏ל-5,975.60, ואם כתב 5.975 יש לתקן ל-5,975.‏
כמו כן צריך להיזהר שהתיקון לא יפגע במספרים שהם תאריכים. למשל אין לתקן את המספר ‏‏5.6.2014 או 25/03/2008.‏
תודה למסייעים.‏
 

שמח לעזור

משתמש מקצוען
D I G I T A L
איך נדע האם זה שבר עשרוני או מפריד במקום לא נכון?
למשל 10.20 מה זה?
 

vn453

משתמש חדש
נכתב ע"י שמח לעזור;1593079:
איך נדע האם זה שבר עשרוני או מפריד במקום לא נכון?
למשל 10.20 מה זה?

לכאורה, הפקודה אמורה לספור את הספרות החל מצד ימין של המספר ואז לבחון -
  • אם אחרי שתי ספרות או ארבע ספרות מצד ימין יש לוכסן (למשל: 26/4/15 או 26/4/2015) אז מדובר בתאריך ויש להתעלם ולדלג למופע המספר הבא.
  • אם אחרי שתי ספרות מצד ימין יש נקודה ואחר כך אחרי הספרה השלישית או הרביעית מצד ימין יש עוד פעם נקודה (למשל: 26.4.15, 26.04.15, 26.4.2015 או 26.04.2015), אז מדובר בתאריך ויש להתעלם ולדלג למופע המספר הבא.
  • אם יש נקודה אחרי הספרה הראשונה או השנייה - אז מדובר בשבר עשרוני ויש להתעלם משתי הספרות הראשונות (שהן לימין הנקודה) ולספור עוד שלוש ספרות, לשים פסיק (אם יש לפחות עוד ספרה מצד שמאל) וכן הלאה. למשל: 1820.2 או 1820.20 יש להפוך ל-1,820.20.
  • אם אין נקודה אחרי הספרה הראשונה או השנייה, אז יש לספור שלוש ספרות מצד ימין, לשים פסיק (אם יש לפחות עוד ספרה מצד שמאל) וכן הלאה.
  • אם הנקודה היא אחרי הספרה השלישית מצד ימין, אז זו טעות הקלדה, ויש להחליפה בפסיק ולהמשיך בספירה כאמור לעיל. למשל: 1.820 יש להפוך ל-1,820.
 

P.S.

משתמש מקצוען
אני יכולה לכתוב לך תוכנה קטנה שעושה את זה.
חשוב לשמור על העיצוב של המסמך? או שזה רק טקסט?
 

vn453

משתמש חדש
נכתב ע"י pesia;1594606:
אני יכולה לכתוב לך תוכנה קטנה שעושה את זה.
חשוב לשמור על העיצוב של המסמך? או שזה רק טקסט?

תודה רבה. אשמח להיעזר.
חשוב לשמור על העיצוב. אבל אם זה מכביד, אשמח להיעזר במה שאפשר.
 

P.S.

משתמש מקצוען
http://www.jumbomail.co.il/Downloads.aspx?sid=6E553333386A7943317A773D

מקווה שזה עוזר, לא הצלחתי לשמור על העיצוב, זה מטפל בטקסט בלבד.
אחרי שמורידים, מריצים מתוך שורת הפקודה:
כדי לפתוח את שורת הפקודה:
* לחיצה על חלונות + R
* לרשום: cmd, וללחוץ על OK
בשורת הפקודה להיכנס לתיקיה שהורדת ע"י הפקודה cd ואח"כ הניתוב לתיקיה
כדי להריץ צריך לרשום את הפקודה:
קוד:
[LEFT]FixNumFormat.jar  fileName  newFileName[/LEFT]
כאשר ה-fileName יכיל את השם של הקובץ שלך, כולל הניתוב המלא
וה-newFileName השם של הקובץ המתוקן שיווצר אחרי ההרצה.
תיתן שם חדש ולא את השם הקיים, כדי שהקובץ המקורי לא יהרס, במידה ויהיה בעיות בהרצה....
 

P.S.

משתמש מקצוען
הנה הקוד, למקרה שמישו ירצה לקחת את זה הלאה או לתקן במקרה שלא עובד:

קוד:
package com.pesia.format;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DecimalFormat;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class FixNumbersFormat {
	
	public static void readDocxFile(String fileName, String outFileName) {
		try {
			File file = new File(fileName);
			FileInputStream fis = new FileInputStream(file.getAbsolutePath());
			XWPFDocument doc = new XWPFDocument(fis);
			XWPFDocument newDoc = new XWPFDocument();
			for(XWPFParagraph p : doc.getParagraphs()) {
				XWPFParagraph p2 = newDoc.createParagraph();
				for(XWPFRun r : p.getRuns()) {
					XWPFRun r2 = p2.createRun();
					String w = r.getText(0);
					String w2 = w.trim();
			    	if(isNumeric(w2.replaceAll(",", ""))) {
			    		if(w2.length() > 3 && w2.charAt(w2.length() - 4) == '.') {
			    			w = w.replace(".", "");
			    		}
			    		w = w.replaceAll(",", "");
			    		w = formatNumericWithSpaces(w);
			    	}
				    r2.setText(w);
				}
			}
			newDoc.write(new FileOutputStream(outFileName));
			fis.close();
		} catch (Exception e) {
			e.printStackTrace();
			}
		}

		public static boolean isNumeric(String str){
		  return str.matches("-?\\d+(\\.\\d+)?");
		}
		
		public static String formatNumericWithSpaces(String str) {
			String newStr = "";
			int pos = 0;
			for(int i = 0; i < str.length(); i++) {
				if(Character.isSpaceChar(str.charAt(i))) {
					newStr += str.charAt(i);
				} else {
					pos = i;
					break;
				}
			}
			newStr += new DecimalFormat("#,###.#####").format(Double.parseDouble(str.trim()));
			for(int i = pos; i < str.length(); i++) {
				if(Character.isSpaceChar(str.charAt(i))) {
					newStr += str.charAt(i);
				}
			}
			return newStr;
		}
		
		public static void main(String[] args) {
			readDocxFile(args[0], args[1]);
		}

}
כדי שהקוד יעבוד צריך לצרף קבצי jar של -poi
הם נמצאים בקישור ששלחתי.
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק צח

א מִזְמוֹר שִׁירוּ לַיי שִׁיר חָדָשׁ כִּי נִפְלָאוֹת עָשָׂה הוֹשִׁיעָה לּוֹ יְמִינוֹ וּזְרוֹעַ קָדְשׁוֹ:ב הוֹדִיעַ יי יְשׁוּעָתוֹ לְעֵינֵי הַגּוֹיִם גִּלָּה צִדְקָתוֹ:ג זָכַר חַסְדּוֹ וֶאֱמוּנָתוֹ לְבֵית יִשְׂרָאֵל רָאוּ כָל אַפְסֵי אָרֶץ אֵת יְשׁוּעַת אֱלֹהֵינוּ:ד הָרִיעוּ לַיי כָּל הָאָרֶץ פִּצְחוּ וְרַנְּנוּ וְזַמֵּרוּ:ה זַמְּרוּ לַיי בְּכִנּוֹר בְּכִנּוֹר וְקוֹל זִמְרָה:ו בַּחֲצֹצְרוֹת וְקוֹל שׁוֹפָר הָרִיעוּ לִפְנֵי הַמֶּלֶךְ יי:ז יִרְעַם הַיָּם וּמְלֹאוֹ תֵּבֵל וְיֹשְׁבֵי בָהּ:ח נְהָרוֹת יִמְחֲאוּ כָף יַחַד הָרִים יְרַנֵּנוּ:ט לִפְנֵי יי כִּי בָא לִשְׁפֹּט הָאָרֶץ יִשְׁפֹּט תֵּבֵל בְּצֶדֶק וְעַמִּים בְּמֵישָׁרִים:
נקרא  9  פעמים

אתגר AI

באבוד רשעים בינה • אתגר 112

לוח מודעות

למעלה